gpt4 book ai didi

asp.net-mvc - ASP.NET MVC,强类型 View ,部分 View 参数故障

转载 作者:行者123 更新时间:2023-12-03 11:33:23 25 4
gpt4 key购买 nike

如果我得到继承的观点:

System.Web.Mvc.ViewPage<Foo>

Foo的属性Bar具有类型字符串
并且view要呈现继承自以下类型的强类型局部 View :
System.Web.Mvc.ViewUserControl<string>  

像这样:
Html.RenderPartial("_Bar", Model.Bar);%>

那么为什么会抛出这个:

The model item passed into the dictionary is of type 'Foo'
but this dictionary requires a model item of type 'System.String'.



什么时候bar没有初始化?

更具体地说:为什么它通过Foo,应该在哪里传递null?

最佳答案

正如@Dennis指出的那样,如果模型值为null,它将使用 View 中的现有模型。这样做的原因是为了支持使用仅包含部分 View 名称的签名来调用部分 View 并使其重用现有模型的能力。在内部,所有RenderPartial帮助器都遵循单个RenderPartialInternal方法。获得该方法以重用现有模型的方法是为模型传递一个null值(仅采用 View 名称的签名会这样做)。将空值传递给同时包含 View 名称和模型对象的签名时,实际上是在复制仅使用 View 名称的方法的行为。

这应该可以解决您的问题:

<% Html.RenderPartial( "_Bar", Model.Bar ?? string.Empty ) %>

关于asp.net-mvc - ASP.NET MVC,强类型 View ,部分 View 参数故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com