【问题标题】:Pass HTML hidden field value in @HTML.BeginForm在@HTML.BeginForm 中传递 HTML 隐藏字段值
【发布时间】:2018-01-11 06:08:54
【问题描述】:

我想在单击提交按钮时将隐藏字段值传递到我的操作方法中。这需要在单击发布文件的按钮时发生。下面是带有接受文件的 Post 方法的 HTML 表单的 Razor 代码。

@using (Html.BeginForm("UploadProject", "Admin", FormMethod.Post, new { enctype = "multipart/form-data"}))
{
        <label id="lblProjectSize" hidden="hidden">Select Project size</label>
        <select id="ddlProjectSize">
            <option value="1">Large</option>
            <option value="2">Medium</option>
            <option value="3">Small</option>
        </select>
    <input type="hidden" id="hdnProjectSize" />
    <input type="submit" value="Upload Data" onclick="setHiddenVal()" />
}

这是我的动作方法-

[HttpPost]
public async Task<ActionResult> UploadProject(string UploadProjectOption, int? ProjectId, HttpPostedFileBase PostedFile)
{
    //code here
}

我可以在 action 方法中访问文件对象,但我不确定如何通过提交的表单传递附加参数。

在我设置隐藏字段值点击提交按钮之后,我需要在发布的操作方法中访问隐藏字段值。

设置隐藏字段值的脚本-

function setHiddenVal()
{
    alert($("#ddlProjectSize :selected").val());
    $("#hdnProjectSize").val($("#ddlProjectSize :selected").val());
}

我不想为此使用 AJAX。

【问题讨论】:

  • 您的隐藏输入在哪里? setHiddenVal() 脚本是什么?
  • @Html.HiddenFor,或者自己构建html。
  • @StephenMuecke 请查看更新后的帖子。
  • 您的输入没有name 属性,因此它不会发布值。它需要与您要绑定的参数的名称相匹配。但是你隐藏的输入和脚本有什么意义呢? - 你也可以给&lt;select&gt;name属性(我假设你想将值绑定到UploadProjectOption(在这种情况下,参数应该是int&lt;select&gt;应该有name="UploadProjectOption"
  • @StephenMuecke 您的评论解决了我的问题,但我接受了第一个答案帖子。谢谢斯蒂芬!

标签: c# asp.net-mvc razor


【解决方案1】:

首先,您应该为输入类型设置name 属性,并且您在提交时定义了onclick 事件,当然您不能触发表单操作。改为为选择选项定义onchange 事件。

@using (Html.BeginForm("UploadProject", "Admin", FormMethod.Post, new { enctype = "multipart/form-data"}))
{
    <label id="lblProjectSize" hidden="hidden">Select Project size</label>
    <select id="ddlProjectSize" name = "ddlProjectSize" onchange="setHiddenVal()">
        <option value="1">Large</option>
        <option value="2">Medium</option>
        <option value="3">Small</option>
    </select>
    <input type="hidden" id="hdnProjectSize" name = "hdnProjectSize"/>
    <input type="submit" value="Upload Data" />
}

【讨论】:

  • 整个脚本,隐藏输入是没有意义的,但如果你愿意,当然可以处理提交事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 2021-07-28
相关资源
最近更新 更多