mth*_*len 5 c# asp.net-mvc-4 visual-studio-2015
问题: 将视图模型传递给局部视图时出现错误消息。
主页:Index.cshmtl,使用类 DivisionModel
@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>
Run Code Online (Sandbox Code Playgroud)
局部视图:_prtDivision.cshmtl,使用addDivisionViewModel
@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>
Run Code Online (Sandbox Code Playgroud)
但是,当我将 'addDivionsViewModel 传递给视图时。
即在 tabpanel 的索引页上
@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml", new addDivisionViewModel())
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
表示传递的模型不正确......如果我将调用方法更改为:
@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml", new DivisionViewModel())
Run Code Online (Sandbox Code Playgroud)
或者
@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml", Model)
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
因此,无论我发送给局部视图的模型是什么,VS 都会告诉我它想要相反的模型?
我一直在围绕这个话题进行大量挖掘,对于看起来相对简单的事情,结果并没有那么简单......
我试过的:
@{ var m = Model.addDivisionViewModel})Model和分离.addDivisionViewModelfrom 模型。失去功能并失去对原始数据的引用。即无法显示数据(树结构太深 => Model.addDivisonViewModel.Division.DivisionName)以及在网络上看到的大约一百种其他方法......任何帮助将不胜感激
小智 1
您的部分视图有一个模型,addDivisionViewModel但它还包括
Layout = "~/Views/Company/Division/Index.cshtml";
Run Code Online (Sandbox Code Playgroud)
并且Index.cshtml视图有一个模型是DivisionViewModel
它不可能两者兼而有之(除非其中一个源自另一个)。从局部视图中删除该Layout = ".."线(局部视图不应具有布局)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |