Asp.net mvc 3 是否可以嵌套局部视图?
我知道,但最初的海报接受了一个不涉及嵌套的解决方案。我当然希望嵌套局部视图(当然,除非有更好的方法) 我有一个页面,根据用户在主视图中的操作,可以用Ajax加载几个部分视图中的一个。(视图是局部的,因为我的理解是,如果您想从Ajax调用中加载重要的额外内容,您需要从调用中返回PartialViewResult。)几个局部视图有一个公共元素,一个下拉列表,我想将其分解成它自己的局部视图 但这不起作用。我的每个局部视图都有一个关联的视图模型,即它们的模型。对于嵌套局部视图,我想从父视图的视图模型中传递单个字段的值,一个可为null的int,作为嵌套局部视图的模型 但在运行时,我得到一个错误,指出我的局部视图需要一个可为空但已接收的X,其中X是与父局部视图关联的视图模型的类型 所以我的问题有两个:Asp.net mvc 3 是否可以嵌套局部视图?,asp.net-mvc-3,partial-views,Asp.net Mvc 3,Partial Views,我知道,但最初的海报接受了一个不涉及嵌套的解决方案。我当然希望嵌套局部视图(当然,除非有更好的方法) 我有一个页面,根据用户在主视图中的操作,可以用Ajax加载几个部分视图中的一个。(视图是局部的,因为我的理解是,如果您想从Ajax调用中加载重要的额外内容,您需要从调用中返回PartialViewResult。)几个局部视图有一个公共元素,一个下拉列表,我想将其分解成它自己的局部视图 但这不起作用。我的每个局部视图都有一个关联的视图模型,即它们的模型。对于嵌套局部视图,我想从父视图的视图模型中传
但这就是我遇到问题的原因。是的,可以嵌套局部视图。只要确保你通过了正确的模型。HTMLHelper在这里很有用,因为您可以使用完整视图路径封装对RenderPartial的调用,并确保使用正确的模型 范例
public static void RenderSomePartial(this HtmlHelper helper, int? i)
{
helper.RenderPartial("~/Views/Shared/SomePartial.cshtml", i);
}
是的,你可以。如果你需要传递模型,它可能会变得有点混乱。如果您使用的是强类型模型,请尝试使用DisplayTemplates或EditorTemplates而不是partials。您可以在父视图中使用render partial并调用一些子视图 您还可以通过查看包传递数据 从父视图调用局部视图时,从控制器传递到父视图的数据可以传递到子视图
我使用查看包将我的数据发送到子视图谢谢!这帮我解决了我的问题!为了响应您的编辑:您必须将null强制转换为可为null的int,比如
(int?)null
@dotjoe,这与传递int类型的模型属性或变量会有不同的效果吗?正好有一个空值?因为我就是这么做的。我会想如果一个null转换为int?一个已经是int类型的变量会起作用吗?会有用的。但事实并非如此。是的,这也应该行得通……这和我的答案没什么不同……奇怪。