我在HtmlForm
里面有两个按钮,它运行得很好,以区分我在actionName中传递按钮的名称。看下面:
[HttpPost]
public ActionResult Index(string button, QuizCompletedViewModel q)
{ // QuizCompletedViewModel is the model of my razor view
...
}
@using (Html.BeginForm("Index", "Quiz", FormMethod.Post, new { id = "form" }))
{
<div>
<!-- Old code using two buttons for post -->
<div class="float-right">
@* <input name="button" type="submit" value="save" />
<input name="button" type="submit" value="done" />*@
<input name="button" type="button" value="done" />
</div>
<div id="dialog-form">
<input name="button" type="button" value="Cancel" />
<input name="button" type="submit" value="Save" />
<input name="button" type="submit" value="Done" />
</div>
</div>
<div id="question-container">
@for (int i = 0; i < Model.Questions.Count; i++) {
...
}
</div>
}
然后我需要更改当前视图的两个按钮,并在上面显示带有这两个按钮的弹出按钮(id="dialog-form"
)。当用户按下按钮并像旧代码一样执行POST时,使用JQuery对我来说有点困难。
你可以伸出援手吗?
答案 0 :(得分:1)
我认为这可能对你有所帮助,你必须根据自己的需要进行调整,Jquery Dialog在我的代码示例中显示一个Continue按钮并将函数绑定到它,你可以替换Asp.net Webforms __doPostBack有一些会导致你的MVC页面回发的内容。
$("#dialog").dialog({
autoOpen: false,
height: 380,
width: 650,
modal: true,
close: function () {
$('#btnCreateAccount').button('refresh');
},
buttons: {
'Continue': function () {
$(this).dialog('close');
__doPostBack($("#<%=btnCreateAccount.ClientID %>").attr("name"), '');
}
}
});