我正在尝试捕获控制器方法中按钮的值。我有两个按钮保存并提交哪个帖子返回相同的表格。我需要确定按下了哪个按钮。这些按钮实际存在于表单之外,并使用javascript来触发回发。按钮出局的原因是布局原因。我已经命名了按钮以及指定的值。不确定为什么它们在回发时为空。这是代码
<div class="buttonalign" >
<button name="button" value="submit" onclick="$('#requestHeaderform').submit();" class="btn btn-primary">Submit</button>
<button name="button" value="save" onclick="$('#requestHeaderform').submit();" class="btn btn-default">Save as draft</button>
</div>
@using (Html.BeginForm("Request_Insert", "Request", FormMethod.Post,new { id = "requestHeaderform" }))
{
<div class="newRequestHeader">
@Html.Partial("~/Views/Request/_RequestHeaderView.cshtml")
</div>
}
控制器方法
[HttpPost]
public ActionResult Request_Insert(NewRequestViewModel newReqeustViewModel,string button)
{
switch (button)
{
case "submit":
// Do something
break;
case "save":
// Do something
break;
default:
break;
}
}
答案 0 :(得分:0)
**View**
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(function() {
$("#submit").click(function(e) {
e.preventDefault();
alert($("#submit").attr("value"));
$('#ButtonHiddenValue').val($("#submit").attr("value"));
$('#requestHeaderform').submit();
});
$("#save").click(function(e) {
e.preventDefault();
$('#ButtonHiddenValue').val($("#save").attr("value"));
$('#requestHeaderform').submit();
});
});
</script>
<div class="row">
<div class="buttonalign" >
<button name="button" id="submit" value="submit" class="btn btn-primary">Submit</button>
<button name="button" id="save" value="save" class="btn btn-default">Save as draft</button>
</div>
@using (Html.BeginForm("Request_Insert", "Home", FormMethod.Post,new { id = "requestHeaderform" }))
{
<input id="ButtonHiddenValue" name="ButtonHiddenValue" type="hidden" />
}
</div>
**Controller**
public ActionResult Request_Insert(NewRequestViewModel newReqeustViewModel)
{
return null;
}
**Model**
public class NewRequestViewModel
{
public string ButtonHiddenValue { get; set; }
}