我有一个很长的表单,使用部分视图分成不同的页面。我想在用户点击进入下一个patial视图表单时将输入的数据保存到一个部分视图表单中。然后拥有它,以便当它们返回上一个视图时,输入的数据将在那里。
所以我需要的是将数据发布到控制器。 虽然我在部分视图中使用的是:
@Ajax.ActionLink("Job Information", "JobInformation", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "jobForm"})
当他们点击操作链接时,会将他们带到下一页(部分视图)
那么如何在点击动作链接时提交表单?
答案 0 :(得分:2)
如何在点击操作链接时提交表单?
我需要将数据发布到控制器。
而不是使用AJAX ActionLink使用AJAX BeginForm,如下所示。假设您有一个如下所示的模型,以填充下拉列表。
public class DDLModel
{
public List<SelectListItem> Items { get; set; }
public string SelectedValue { get; set; }
}
然后你有控制器来显示这个模型 -
@model MVC.Controllers.DDLModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
@using (Ajax.BeginForm("Submit", "Ajax", new AjaxOptions { UpdateTargetId = "SellerWebSettings" }, new { id = "form1" }))
{
@Html.DropDownListFor(m => m.SelectedValue, Model.Items, "DDL")
<input type="submit" value="Click" />
}
<div id="SellerWebSettings">
</div>
在上面的表单中,你有一个AJAX BeginForm(),它可以将AJAX全部转换为另一个将返回PartialView的控制器动作。该模型也将转发到局部视图,如下所示 -
public ActionResult Submit(DDLModel model)
{
return PartialView("MyPartial",model);
}
部分视图如下 -
@model MVC.Controllers.DDLModel
<div>
@DateTime.Now - @Model.SelectedValue
</div>
因此,当我们选择Dropdownlist项并单击按钮时,我们有以下输出 -