C# MVC局部视图和控制器代码
我不明白控制器是如何处理局部视图的,它与视图相同吗?我举了一个例子,似乎从未使用过局部视图控制器 这就是一个例子 主视图(test.cshtml): 当我调用我期望的主视图时 主视图 局部视图 我的号码是11C# MVC局部视图和控制器代码,c#,asp.net-mvc,razor,partial-views,asp.net-mvc-partialview,C#,Asp.net Mvc,Razor,Partial Views,Asp.net Mvc Partialview,我不明白控制器是如何处理局部视图的,它与视图相同吗?我举了一个例子,似乎从未使用过局部视图控制器 这就是一个例子 主视图(test.cshtml): 当我调用我期望的主视图时 主视图 局部视图 我的号码是11 但是数字11没有写出来。我遗漏了什么吗?这里是将匿名模型传递到局部视图: <h2>Main View</h2> @Html.Partial("_Partial", new { myNumber = 11 }) @model int <h3>partia
但是数字11没有写出来。我遗漏了什么吗?这里是将匿名模型传递到局部视图:
<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
然后,您可以在局部视图中使用@model
关键字:
<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
你应使用:
public ActionResult _Partial(int myNumber) {
return PartialView("_Partial", 11);
}
方法
PartialView
可以在AJAX场景中用于呈现HTML页面的一部分。这里,将匿名模型传递到部分视图:
<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
然后,您可以在局部视图中使用@model
关键字:
<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
你应使用:
public ActionResult _Partial(int myNumber) {
return PartialView("_Partial", 11);
}
方法
PartialView
可以在AJAX场景中用于呈现HTML页面的一部分。感谢评论和回答,我找到了3种方法:
@Html.Partial()
不调用控制器方法-它只呈现名为“\u Partial”的视图中定义的Html。您需要@Html.Action(“_Partial”,new{myNumber=11})
来调用服务器方法并呈现它生成的Html
ViewDataDictionary
(感谢Mark Schevchenko的回答和另一个问题)@Html.Partial(“\u Partial”,new{myNumber=11})
将第二个参数作为模型传递,以将参数传递给控制器ViewDataDictionary
应改用
@Html.Partial("_Partial", new ViewDataDictionary { { "myNumber", 11 } }
整数
作为局部视图模型(感谢Mark Schevchenko的回答)见马克·舍甫琴科的答案。这种方法的缺点是你不能在你的局部视图上有另一个模型我找到了3种方法,感谢评论和答案:
@Html.Partial()
不调用控制器方法-它只呈现名为“\u Partial”的视图中定义的Html。您需要@Html.Action(“_Partial”,new{myNumber=11})
来调用服务器方法并呈现它生成的Html
ViewDataDictionary
(感谢Mark Schevchenko的回答和另一个问题)@Html.Partial(“\u Partial”,new{myNumber=11})
将第二个参数作为模型传递,以将参数传递给控制器ViewDataDictionary
应改用
@Html.Partial("_Partial", new ViewDataDictionary { { "myNumber", 11 } }
整数
作为局部视图模型(感谢Mark Schevchenko的回答)见马克·舍甫琴科的答案。这种方法的缺点是在局部视图上不能有另一个模型这只是一个理解为什么不调用局部视图控制器的示例。在我的场景中,部分视图需要获取一个模型对象列表,并呈现其中的一部分
@Html.partial()
并不调用控制器方法-它只呈现名为“\u partial”
的视图中定义的Html。您需要@Html.Action(“_Partial”,new{myNumber=11})
来调用服务器方法并呈现它生成的Html。这只是一个理解为什么不调用部分视图控制器的示例。在我的场景中,部分视图需要获取一个模型对象列表,并呈现其中的一部分@Html.partial()
并不调用控制器方法-它只呈现名为“\u partial”
的视图中定义的Html。你需要@Html.Action(“_Partial”,new{myNumber=11})
来调用一个服务器方法并呈现它生成的Html,如果我的部分视图已经有一个模型呢?假设它有@modelmyCustomClass
,我需要一个整数参数public-ActionResult\u-Partial(int-myNumber){…my-code}
F.e.\u-Partial(new-myCustomClass{integerField=myNumber})
,谢谢,问题稍有不同,但您的示例帮助了lotad,如果我的局部视图已经有了模型呢?假设它有@modelmyCustomClass
,我需要一个整数参数public-ActionResult\u-Partial(int-myNumber){…my-code}
F.e.\u-Partial(new-myCustomClass{integerField=myNumber})
。谢谢,这个问题略有不同,但你的例子帮助很大