Dar*_*Zon 2 c# asp.net-mvc jquery jquery-ui asp.net-mvc-4
在我的剃刀视图中,我正在使用Html.BeginForm.在其中我有两个元素,当我设置clic时,应该提交表单但我需要添加一个额外的字符串参数.
@using (Html.BeginForm("Index", "Quiz", FormMethod.Post, new { id = "form" }))
{
...
}
[HttpPost]
public ActionResult Index(string parameter, QuizCompletedViewModel q) //FormCollection f)
{
...
if (button.Equals("d"))
{
...
return RedirectToAction("ShowResults", new { testId = Quiz.QuizId, answeredTest = answeredId });
}
else
{
...
return RedirectToAction("Index", "Dashboard");
}
}
Run Code Online (Sandbox Code Playgroud)
因此,在我使用的jquery函数中$("#element").submit(),参数parameter始终为null(这是正常的).如何添加其他数据以parameter使用JQUERY?
注意:我没有使用AJAX.
您可以使用表单中所需的名称和值添加隐藏的输入.此值将与所有其他表单项一起提交.
<input type="hidden" name="someName" value="someValue" />
Run Code Online (Sandbox Code Playgroud)
编辑评论:
如果您将每个提交按钮作为属性提供,则可以在单击处理程序中获取它,然后在表单内附加一个隐藏字段.就像是:
$(function(){
$('#form input[type=submit]').click(function(e) {
var val = this.getAttribute("data-param");
$(this).closest('form').append('<input type="hidden" name="param" value="' + val + '" />");
});
});
Run Code Online (Sandbox Code Playgroud)
未经测试,只是预感.希望在按钮单击事件之前不会触发表单提交事件.您还需要处理输入事件和按键等.
你为什么不想用ajax?
在您的表单sumbit尝试这样:
$("form").submit(function(){
$.ajax({
type: 'POST',
url: "/Quiz/Index",
dataType: "json",
data: $("form").serialize() + '¶meter=param1' ,
success: function () {
alert("Successful");
}
error: function(){
alert('error');
}
});
});
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
编辑
在你的jQuery函数中尝试这样:
$('form').append('¶m=a');
Run Code Online (Sandbox Code Playgroud)