【发布时间】: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属性,因此它不会发布值。它需要与您要绑定的参数的名称相匹配。但是你隐藏的输入和脚本有什么意义呢? - 你也可以给<select>name属性(我假设你想将值绑定到UploadProjectOption(在这种情况下,参数应该是int和<select>应该有name="UploadProjectOption" -
@StephenMuecke 您的评论解决了我的问题,但我接受了第一个答案帖子。谢谢斯蒂芬!
标签: c# asp.net-mvc razor