CodeGo.net>如何在剃刀MVC asp.net合并两个视图模型

可以说我有一些模型如下:

public class Model1 
{
   public int ID{get;set;}
   public string Name{get;set;}
}

public class Model2 
{
    public int ID{get;set;}
    public string Name{get;set;}
}

class CommonViewModel 
{
    public string Title{get;set;}
    public Model1 model1;
    public Model2 model2;
}

我有如下剃刀视图

@model ProjectName.CommonViewModel

@Html.LabelFor(m => model.Title)           
@Html.EditorFor(m => model.Title)

@Html.LabelFor(m => model.model1.Name)           
@Html.EditorFor(m => model.model1.Name)

在我的控制器上,我有一个回发,它将CommonViewModel作为参数.通用视图模型将具有“标题”值,但没有model1.Name值.为什么以及如何获取该值并在发布后发回给控制器.

解决方法:

您的CommonViewModel类有一些问题.它应该是公共的,model1和model2应该具有getter和setter:

public class CommonViewModel
{
    public string Title { get; set; }
    public Model1 model1{get;set;}
    public Model2 model2{get;set;}
}

同样在视图中,您需要修复:

@Html.LabelFor(m => m.Title)           
@Html.EditorFor(m => m.Title)

@Html.LabelFor(m => m.model1.Name)           
@Html.EditorFor(m => m.model1.Name)

上面的代码在我的测试中工作正常.

上一篇:倒计时60s


下一篇:c#-带列表列表的MVC表单