簡體   English   中英

將模型屬性傳遞給局部視圖

[英]Passing a model property to a partial view

我無法將正確的數據傳遞到局部視圖,我不確定它為什么會失敗。

說我有模特

public class SubModel {
  public string Wobble {get; set;}
}

public class MyModel {
  public SubModel Wibble {get; set;}
}

和意見

MyView.cshtml

@model MyModel

@Html.Partial("SomePartial", Model.Wibble)

SomePartial.cshtml

@model SubModel

<h1>Victory!</h1>

這失敗了The model item passed into the dictionary is of type 'MyModel', but this dictionary requires a model item of type 'MySubModel'

當我將MyView.cshtml更改為

@model MyModel

@Html.Partial("SomePartial", Model.Wibble, new ViewDataDictionary<MySubModel>(Model.Wibble))

它按預期工作。

為什么我需要顯式傳遞ViewDataDictionary 為什么我不能通過模型​​?

注意:我正在使用一個可以讓我進入hrm的庫嗎? 很多時候。 如果不期望上述行為,則可能是此庫故障。

傳遞給局部視圖的模型為null時會發生這種情況。 不要將null傳遞給局部視圖,否則會對其類型感到困惑。

您是否嘗試使用Model.Wibble而不是MyModel.Wibble傳遞子模型? 可以在具有Model的視圖中訪問關聯的模型,而不是模型的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM