我到处寻找这个问题的答案,也许我不走运。这是一件非常简单的事情,但我宁愿从这里开始,以防它花费的时间超过预期。
所以我有最简单的观点。
@model System.String
@using (Html.BeginForm("AdminDeletePost", "Home", FormMethod.Post))
{
@Html.HiddenFor(m => m)
<h3>Are you sure you want to delete the following user?</h3>
<br />
<h4>@Model</h4>
<br />
<h6>To confirm deletion, click <i>Save</i>.</h6>
<h6>To cancel, click <i>Cancel</i>.</h6>
}
我想要做的就是将Model(这是一个字符串)的值传递回Home控制器中的AdminDeletePost操作。所以它的布局就像我的典型形式之一。虽然它很简单,但我无法让它发挥作用。我应该补充一点,上面的<h4>@Model</h4>
确实显示了正确的值。模型的值不为null。我假设HiddenHelper
方法正在将某种元数据传递给InputHelper
方法,其中一项是Name参数。但是,字符串不是我可以像普通模型一样注释的东西。也许我以错误的方式看待这件事。
我已经可以猜测有人会建议不要走这条路线,因为它简单(即不发布整个表格而是发布个别字符串)。但是,由于应用程序的布局,并保持我的所有表单之间的一致性,这是目前的理想设置。
这是堆栈......
以前是否有其他人有过相对类似的问题?
答案 0 :(得分:2)
这些帮助者只能获取模型的属性;不是整个模型。
否则,它无法确定输入应该具有的名称。
您应该切换到具有一个字符串属性的视图模型对象(推荐),或者使用适当的名称和值自己编写<input type="hidden">
。
无论哪种方式,名称必须与您的操作的参数名称匹配,才能使请求绑定生效。