gpt4 book ai didi

asp.net-mvc - 如何使用 “null”为其模型调用局部 View ?

转载 作者:行者123 更新时间:2023-12-04 05:20:25 25 4
gpt4 key购买 nike

假设我有一个名为UserDetails的局部 View ,其@model子句设置为一个名为User的模型类。

现在假设我还有另一个看起来像这样的模型类:

public sealed class SpecialModel
{
public User SpecialUser;
public ... // other stuff
}

SpecialModel的 View 内,我想调用上面提到的局部 View :
@model MyProject.Models.SpecialModel
@{ ViewBag.Title = "..."; }
<div class='user'>@Html.Partial("UserDetails", Model.SpecialUser)</div>

如果用户不是 null,这很好用。但是,如果用户是 null,则会出现此异常:

System.InvalidOperationException: The model item passed into the dictionary is of type 'MyProject.Models.SpecialModel', but this dictionary requires a model item of type 'MyProject.Models.User'.



显然,异常消息在说谎。如何正确解决此问题,以便我可以正常传递 null

最佳答案

代替

@Html.Partial("UserDetails", Model.SpecialUser)

写得更详细
@Html.Partial("UserDetails", new ViewDataDictionary(Model.SpecialUser))

这使此特定方案起作用。

但是,它有一个缺点:它清除了从 Controller 传递来的所有信息。特别是,它将清除所有验证信息;如果您要发布一些数据,并且想要在该部分 View 中显示验证错误消息,则无法使用此技术。

关于asp.net-mvc - 如何使用 “null”为其模型调用局部 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9292852/

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