我需要一个结合了两个实体模型的视图。我创建了一个类似这样的类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FSDS.DataModels;
namespace FSDS.WebUX.Models
{
public partial class ChainandJob
{
public ScheduleJobChain chain {get;set;} //this object has 6 properties
public ScheduleJob job {get;set;} //this object has 8 properties.
}
}
我使用“创建”脚手架创建了一个新的局部视图。这就是它给我的东西:
@model FSDS.WebUX.Models.ChainandJob
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>ChainandJob</legend>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
所有领域在哪里?
答案 0 :(得分:3)
您需要自己编写,例如:
@Html.EditorFor(model => model.ChainandJob.chain.Bla)
@Html.ValidationMessageFor(model => model.ChainandJob.chain.Bla)
@Html.EditorFor(model => model.ChainandJob.job.Bla)
@Html.ValidationMessageFor(model => model.ChainandJob.job.Bla)
等等。
修改强>
虽然我没有这样做,但您可以让VS为SchedualJobChain
创建一个编辑视图,为ScheduleJob
创建另一个编辑视图,并将其创建的模板剪切为一个用于查看模型的模板。不要忘记@Html.HiddenFor(model => model.ChainandJob.chain.Id
等。
答案 1 :(得分:2)
VS不知道你的对象。在<legend>ChainandJob</legend>
尝试添加
@EditorFor(m => m.chain.ChainProperty)
@ValidationMessageFor(m => m.chain.ChainProperty)
@EditorFor(m => m.job.JobProperty)
@ValidationMessageFor(m => m.job.JobProperty)
事情将会变得笨拙:)
EditorFor
会为您生成默认输出,如果您需要调整它 - 请随意这样做。