【问题标题】:Pass one model from a partial view to a Parent View and bind another model to the same Parent View将一个模型从局部视图传递到父视图,并将另一个模型绑定到同一个父视图
【发布时间】:2015-06-20 15:33:36
【问题描述】:

我有一个情况,可能之前有人问过,但我无法得到它。

我有一个partial view,即_SamplePartial.cshtml,还有一个父视图,即Sample.cshtml。 现在我想在父视图中使用局部视图,以及将父视图与另一个模型绑定。

下面是代码:

public ActionResult Sample()
{
 Student student=new Student()
  {
    ID=101,
    Name="Sam",
    City="NY"
  };
 return View(student);
}

示例.cshtml:

@model MultipleModels.Models.Student
@{
    ViewBag.Title = "Sample";
}
<h2>Sample</h2>
@Html.Partial("_SamplePartial",Model)

_Samplepartial.cshtml:

@model MultipleModels.Models.Student
<table>
    <tr><td>@Model.StudentID</td></tr>
    <tr><td>@Model.StudentName</td></tr>
    <tr><td>@Model.StudentCity</td></tr>
</table>

现在我希望另一个学生对象也绑定到视图,但它不应该来自部分视图。 例如:

Student stdObj=new Student()
{
ID=999,
Name="Rambo",
City="Sydney"
};

上述对象也应该存在于视图中,但不应作为模型从局部视图中传递。

请高手指导。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 razor view model


    【解决方案1】:

    终于找到答案了。

    创建了一个 ViewModel。

    public class StudentViewModel()
    {
    public Student Obj1{get;set;}
    public Student Obj2{get;set;}
    }
    

    在行动方法:

    public ActionResult Sample()
    {
    StudentViewModel vm=new StudentViewModel();
    vm.Obj1=new Student{ID=101,Name="Sam",City="NY"};
    vm.Obj2=new Student{ID=102,Name="Rambo",City="Sydney"};
    return View(vm);
    }
    

    示例.cshtml:

    @model MultipleModels.ViewModels.StudentViewModel
    @{
        ViewBag.Title = "Sample";
    }
    <h2>Sample</h2>
    <p><b>Directly</b></p>
    <table>
        <tr>
            <td>@Model.Obj1.StudentID</td>
            <td>@Model.Obj1.StudentName</td>
            <td>@Model.Obj1.StudentCity</td>
        </tr>
    </table>
    @Html.Partial("_SamplePartial",@Model.Obj2)
    

    【讨论】:

      猜你喜欢
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多