C# 向局部视图传递正确数据模型的正确方法
问题: 将viewmodel传递到局部视图时出现错误消息 主页:Index.cshmtl,使用类划分模型C# 向局部视图传递正确数据模型的正确方法,c#,asp.net-mvc-4,visual-studio-2015,C#,Asp.net Mvc 4,Visual Studio 2015,问题: 将viewmodel传递到局部视图时出现错误消息 主页:Index.cshmtl,使用类划分模型 @model DivisionViewModel @{ Layout = "~/Views/Shared/_Layout.cshtml"; } @*<h2>Division</h2>*@ <div> <!-- Nav tabs --> <ul class="nav nav-tabs" role="tabli
@model DivisionViewModel
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@*<h2>Division</h2>*@
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist" id="divTabs">
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<!-- Home -->
<div role="tabpanel" class="tab-pane active" id="home">
@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml", new addDivisionViewModel())
</div>
@model addDivisionViewModel
@{
Layout = "~/Views/Company/Division/Index.cshtml";
}
@{
ViewBag.Title = "Create";
}
<h2>add division</h2>
@using (Html.BeginForm("addDivision", "Division", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
<div class="row">
<div class="col-sm-12">
@Html.ValidationSummary(false, string.Empty, new { @class = "text-danger" })
</div>
</div>
我收到以下错误消息:
表示传递的模型不正确。。。
如果我随后将调用方法更改为:
@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml", new DivisionViewModel())
或
我得到以下信息:
所以,不管我发送给局部视图的是什么模型,VS告诉我它想要的是相反的模型
我已经在这个话题上挖掘了很多,对于一些看起来相对简单的事情,事实证明并不是那么简单
我所尝试的:
- 添加addDivisionViewModel作为DivisionModel的属性,并将Model.addDivisionViewModel传递给_prtDivision.cshtml
- 在发送之前将属性分配给创建的变量(即
)@{var m=Model.addDivisionViewModel}
- 传递
并从模型中分离模型
。 失去功能并失去对原始数据的引用。也就是说,无法显示数据(树结构太深=>.addDivisionViewModel
) 在网上还有大约一百种其他的方法Model.addDivisionViewModel.Division.DivisionName
任何帮助都将不胜感激您的局部视图有一个模型,该模型是
addDivisionViewModel
,但它还包括
Layout = "~/Views/Company/Division/Index.cshtml";
而Index.cshtml
视图有一个模型,它是DivisionViewModel
它不能同时是两者(除非一个是从另一个派生出来的)。从局部视图中删除
Layout=“…”
行(局部视图不应具有布局)将局部视图布局设置为空
@model addDivisionViewModel
@{
Layout = null;
}
嗨,你想把原始模型从科特罗勒的动作方法传递到局部视图吗?这些事情往往如此简单,这难道不好笑吗…:-)cheersI写道,我认为我已经涵盖了产生错误的所有可能性,但我错了:)
Layout = "~/Views/Company/Division/Index.cshtml";
@model addDivisionViewModel
@{
Layout = null;
}