7

在某种程度上,这很可能最终成为一个非常愚蠢的问题,但基本上我在一个模型中有这个“表单”,它作为表单附加到我的视图中,但我实际上无法从看法。它只有两个属性:一个 Id 属性和一个 String 属性。我一直在尝试用页面上隐藏文本框中的文本填充 String 属性,但没有成功。

表格代码:

    public class AllocateListForm
{
    public int Id { get; set; }

    public virtual string HiddenText { get; set; }
}

相关查看代码:

  <% using (Html.BeginForm("SaveExit", "User", new { }, FormMethod.Post, new { id = "selectExitPoints" }))  { %>
    <fieldset>
            <input type="hidden" id="HiddenText" />
    </fieldset>
  <% } %>

幕后有 JQuery 填充HiddenText文本,我可以向您保证它正在填充。后台还有执行 Ajax 提交的 JQuery,我可以向您保证,代码可以正常工作,因为它在应用程序的其他地方使用时不会出现问题。当我执行将表单提交到服务器的操作并转到它指向的控制器代码时,我设置了一个断点,因此我可以进入控制台并检查表单上的 HiddenText 字段是否有任何数据无效的。谁能指出我正确的方向?

4

2 回答 2

10

如果您将输入的名称指定为“HiddenText”,则模型绑定器应将其拾取。我假设您的控制器操作接受 aAllocateListForm作为参数。

<input type="hidden" name="HiddenText" id="HiddenText" />

你也可以像这样使用 Html Helpers:

@Html.HiddenFor(model => model.HiddenText, new { id = "HiddenText" })

编辑:添加一个 AllocateListForm 作为主模型的属性,然后将助手更改为@Html.HiddenFor(model => model.MyAllocateListForm.HiddenText)

于 2013-05-30T12:43:43.857 回答
4

如果您想以 Razor 方式进行操作,这应该可以解决问题。

@Html.HiddenFor(model => model.HiddenText);
于 2013-05-30T12:45:56.940 回答