Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net mvc中如何在回发期间保留部分视图模型数据_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

在asp.net mvc中如何在回发期间保留部分视图模型数据

在asp.net mvc中如何在回发期间保留部分视图模型数据,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我正在局部查看包含部门信息的部门。我有员工的页面视图。在员工视图中,我使用部门的局部视图来显示员工部门。我的员工模型如下所示 class Employee { public string EmployeeName{get;set}; public Department EmployeeName{get;set}; } class Department { public string DepartmentName{get;set}; } 我在员工页面视图上有提交按钮。 当我提交e

我正在局部查看包含部门信息的部门。我有员工的页面视图。在员工视图中,我使用部门的局部视图来显示员工部门。我的员工模型如下所示

class Employee
{
  public string EmployeeName{get;set};
  public Department EmployeeName{get;set};

}

class Department
{
  public string DepartmentName{get;set};
}
我在员工页面视图上有提交按钮。 当我提交employee视图时,我得到的部门对象为null。 您能建议我如何在回邮期间获得儿童部门模型吗。 Coltroller代码

[HttpGet]
        public ActionResult Employee2()
        {
            Employee e = new Employee();
            e.EmployeeName = "Prashant";
            e.Department = new Department() { DepartmentName = "Phy" };

            return View(e);
        }

        [HttpPost]
        public ActionResult Employee2(Employee e)
        {

            return View(e);
        }
观点

@model MvcApplication2.Models.Department

<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

    <fieldset>
        <legend>Department</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.DepartmentName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.DepartmentName)
            @Html.ValidationMessageFor(model => model.DepartmentName)
        </div>


    </fieldset>

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
@model mvcapapplication2.Models.Department
部门
@LabelFor(model=>model.DepartmentName)
@EditorFor(model=>model.DepartmentName)
@Html.ValidationMessageFor(model=>model.DepartmentName)
@ActionLink(“返回列表”、“索引”)
雇员

@model MvcApplication2.Models.Employee
@{
    ViewBag.Title = "Employee";
}
<h2>
    Employee</h2>
@using (Html.BeginForm("Index","Home"))
{

    <fieldset>
        <legend>Employee</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.EmployeeName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.EmployeeName)
            @Html.ValidationMessageFor(model => model.EmployeeName)
        </div>
        @Html.Partial("Department", Model.Department)
        <p>
            <input type="submit" value="EmployeeSave" />
        </p>
    </fieldset>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
@model mvcapapplication2.Models.Employee
@{
ViewBag.Title=“员工”;
}
雇员
@使用(Html.BeginForm(“索引”、“主页”))
{
雇员
@LabelFor(model=>model.EmployeeName)
@EditorFor(model=>model.EmployeeName)
@Html.ValidationMessageFor(model=>model.EmployeeName)
@Html.Partial(“部门”,Model.Department)

} @节脚本{ @Scripts.Render(“~/bundles/jqueryval”) }
首先尝试搜索。这个问题以前被问过很多次

以下是一种方法:

摘要:用多个表单标记包装每个部分,每个表单标记都有自己的提交按钮

但这一个看起来更像你想要的:

为此使用editortemplates,而不是partials

您遇到的问题是,当您的部门名称文本框命名不正确时,控制器无法读取该文本框。您的
POST
将是
EmployeeName=Prashant&DepartmentName=Phy
,因此
Department
null
,因此会出现错误。

试试这个

您还更改了部门模型实体名称。 以及共享/编辑模板中的部门视图位置

视图:


请被否决的选民解释一下为什么这个问题被否决。这是一个好问题。不要只是否决投票,然后逃之夭夭。让海报知道原因。
@using (Html.BeginForm("Employee", "Content"))
{
@Html.EditorFor(model => model.dptEmployeeName.DepartmentName)
    <fieldset>
        <legend>Employee</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.EmployeeName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.EmployeeName)
            @Html.ValidationMessageFor(model => model.EmployeeName)
        </div>
        @Html.EditorFor(model => model.dptEmployeeName.DepartmentName) //This is partial view

        <p>
            <input type="submit" value="EmployeeSave" />
        </p>
    </fieldset>
}
[HttpPost]
        public ActionResult Employee(Employee e,FormCollection frm)
        {
            var asd = frm["dptEmployeeName.DepartmentName"];

            return View(e);
        }