【问题标题】:Attaching a hidden text field to a form MVC将隐藏的文本字段附加到表单 MVC
【发布时间】:2013-05-30 12:42:41
【问题描述】:

这在某种程度上可能最终成为一个非常愚蠢的问题,但基本上我在一个模型中有这个“表单”,它作为表单附加到我的视图,但我实际上无法传递任何数据它从视图。它只有两个属性:一个 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 字段是否有任何数据空值。谁能指出我正确的方向?

【问题讨论】:

    标签: asp.net-mvc forms


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 你的假设是正确的。它是public JsonResult SaveExit(AllocateListForm exitListForm),所以在控制台中我检查了? exitListForm.HiddenText。但是我不能使用 HTML 助手,因为我的模型没有 HiddenText 的属性,只有表单有。
    • @Jared 您的视图是否强类型化到不同的模型?听起来您应该创建一个视图模型以便能够更轻松地访问表单属性。
    • 它被强类型化为不同的模型,我想我只是在寻找最简单的方法来做到这一点。这个页面非常简单,它只是向用户显示一个复选框列表,并允许他们在列表中选中和取消选中,然后隐藏字段填充他们的选择以传递给控制器​​。
    • 所以添加一个AllocateListForm作为主模型的属性,然后将助手更改为@Html.HiddenFor(model =&gt; model.MyAllocateListForm.HiddenText)
    • 啊啊啊,我试试看。那会和` x.Form.HiddenText, new { @id = "HiddenText" })%> 一样吗?
    【解决方案2】:

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

    @Html.HiddenFor(model => model.HiddenText);
    

    【讨论】:

    • 我不能使用 HTML 助手,因为我的模型没有 HiddenText 字段,只有表单有。
    • 那么,如果我要写 '@Html.HiddenFor(model => model.RegUserID, new { id = "HiddenText" })' 我将如何设置 model.RegUserID 的值?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多