当从模型和jQuery同时提交时,将数据发送到控制器

时间:2015-03-19 13:48:46

标签: c# jquery asp.net-mvc-5 asp.net-ajax

在我的asp MVC表单中,我在提交时将此数据发送给控制器:

@Html.EditorFor(model => model.Idententificacion.Riesgo, new { htmlAttributes= new { @class = "form-control" } })

但与此同时我想发送这些数据:

$('form').on('submit', function send() {
    alert("hi2");
    $.ajax({
        type: "POST",
        traditional: true,
        url: '/Identificacions/Create',
        data: { Par: v }
    });

});

这个提交按钮:

<input type="submit"  value="Create" class="btn btn-default" id="Guardar" />

并且控制器以这种方式重新获取它:

public ActionResult Create(IdentificacionViewModel identificacion,  int[] Par)

问题是它当时正在发送一个参数,我怎样才能同时向控制器发送两个参数。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您可以为Par参数创建/生成两个隐藏字段 Par [0]和Par [1]具有相应的值并删除每个AJAX调用。如果你有一个集合而只有两个元素你不能使用循环

<input type="hidden" name="Par[0]" value="v0" />
<input type="hidden" name="Par[1]" value="v1" />
<input type="submit"  value="Create" class="btn btn-default" id="Guardar" />

为此你可以像这样使用Html.Hidden MVC助手

@Html.Hidden("Par[0]", "v0")
@Html.Hidden("Par[1]", "v1")

要使用循环尝试类似这样的

@for (var counter = 0; counter < List.Count; counter++)
{ 
    @Html.Hidden(string.Format("Par[{0}]", counter), List[counter].Value)
}