将字符串模型传回控制器(MVC 形式)

Pass string model back to controller (MVC Form)

我到处找这个问题的答案,也许我运气不好。这是一件如此简单的事情,但我宁愿从这里开始,以防万一我花费的时间比预期的要长。

所以我有最简单的观点。

@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> 确实显示了正确的值。模型的值不为空。我假设 HiddenHelper 方法将某种元数据传递给 InputHelper 方法,其中一项是 Name 参数。但是,字符串不是我可以像普通模型那样注释的东西。可能是我看错了。

我已经猜到有人会建议不要走我现在的路线,因为它很简单(即不发布整个表格,而是发布单个字符串)。然而,由于应用程序的布局,并保持我所有表单之间的一致性,这是目前的理想设置。

这是堆栈...

有没有人遇到过类似的问题?

这些助手只能获取模型的属性;不是整个模型。

否则,它无法确定输入的名称。

您应该切换到具有一个字符串 属性 的视图模型对象(推荐)或使用适当的名称和值自己编写一个 <input type="hidden">

无论哪种方式,该名称都必须与您的操作的参数名称相匹配,请求绑定才能起作用。