c# – 将正确的数据模型传递给局部视图的正确方法

c# – 将正确的数据模型传递给局部视图的正确方法,第1张

概述问题: 将viewmodel传递局部视图时出现错误消息. 主页:Index.cshmtl,使用类DivisionModel @model DivisionViewModel@{ Layout = "~/Views/Shared/_Layout.cshtml";}@*<h2>Division</h2>*@<div> <!-- Nav tabs --> <ul 问题:
将viewmodel传递给局部视图时出现错误消息.

主页:Index.cshmtl,使用类divisionModel

@model  divisionviewmodel@{  Layout = "~/VIEws/Shared/_Layout.csHTML";}@*<h2>division</h2>*@<div>    <!-- Nav tabs -->    <ul  role="tabList" ID="divTabs">        <li role="presentation" ><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>    </ul>    <!-- Tab panes -->    <div >        <!-- Home -->        <div role="tabpanel"  ID="home">            @HTML.Partial("~/VIEws/Company/division/_prtdivision.csHTML",new adddivisionviewmodel())        </div>

部分视图:_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 >    <hr />    <div >        <div >            @HTML.ValIDationSummary(false,string.Empty,new { @class = "text-danger" })        </div>    </div>

但是,当我将’adddivionsviewmodel传递给视图时.

即在tabpanel的索引页面上

@HTML.Partial("~/VIEws/Company/division/_prtdivision.csHTML",new adddivisionviewmodel())

我收到以下错误消息:

指示传递的模型不正确…
如果我然后将调用方法更改为:

@HTML.Partial("~/VIEws/Company/division/_prtdivision.csHTML",new divisionviewmodel())

要么

@HTML.Partial("~/VIEws/Company/division/_prtdivision.csHTML",Model)

我收到以下消息:

所以,无论我发送到局部视图的模型是什么,VS告诉我它想要相反的模型?

我一直在讨论这个话题,因为看起来相对简单的事情并没有真正变得那么简单……

我尝试过的:

>添加adddivisionviewmodel作为divisionModel的属性并将Model.adddivisionviewmodel传递给_prtdivision.csHTML
>上面的内容,但在发送之前将属性分配给创建的变量(即@ {var m = Model.adddivisionviewmodel})
>传递模型并将.adddivisionviewmodel与模型分离.
丢失功能并丢失对原始数据的引用.即数据无法显示(树结构太深=> Model.adddivisonviewmodel.division.divisionname)
以及在网上看到的大约一百种其他方法……

任何帮助将不胜感激

解决方法 您的局部视图有一个adddivisionviewmodel模型,但它也包含

Layout = "~/VIEws/Company/division/Index.csHTML";

而Index.csHTML视图的模型是divisionviewmodel

它不能同时存在(除非一个来自另一个).从局部视图中删除Layout =“..”行(局部视图不应该有布局)

总结

以上是内存溢出为你收集整理的c# – 将正确的数据模型传递给局部视图的正确方法全部内容,希望文章能够帮你解决c# – 将正确的数据模型传递给局部视图的正确方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存