加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 22:43:16 所属栏目:百科 来源:网络整理
导读:问题: 将viewmodel传递给局部视图时出现错误消息. 主页:Index.cshmtl,使用类DivisionModel @model DivisionViewModel@{ Layout = "~/Views/Shared/_Layout.cshtml";}@*h2Division/h2*@div !-- Nav tabs -- ul class="nav nav-tabs" role="tablist" id="div
问题:
将viewmodel传递给局部视图时出现错误消息.

主页: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>

部分视图:_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>

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

即在tabpanel的索引页面上

@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml",new addDivisionViewModel())

我收到以下错误消息:

enter image description here

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

@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml",new DivisionViewModel())

要么

@Html.Partial("~/Views/Company/Division/_prtDivision.cshtml",Model)

我收到以下消息:

enter image description here

所以,无论我发送到局部视图的模型是什么,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 =“..”行(局部视图不应该有布局)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读