如何在页面asp.net mvc之间保存表单数据?

时间:2014-02-20 18:51:00

标签: asp.net-mvc forms razor partial-views

我有一个很长的表单,使用部分视图分成不同的页面。我想在用户点击进入下一个patial视图表单时将输入的数据保存到一个部分视图表单中。然后拥有它,以便当它们返回上一个视图时,输入的数据将在那里。

所以我需要的是将数据发布到控制器。 虽然我在部分视图中使用的是:

@Ajax.ActionLink("Job Information", "JobInformation", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "jobForm"})

当他们点击操作链接时,会将他们带到下一页(部分视图)

那么如何在点击动作链接时提交表单?

1 个答案:

答案 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项并单击按钮时,我们有以下输出 -

enter image description here