我在_Layout.cshtml中有一个部分视图,我只想显示某些网址。 我的第一个想法是在我的部分我将使用字符串作为模型 @model String 。 在调用的动作方法中,我将返回此 返回PartialView(“_ MyPartial”,新字符串{Request.FilePath}); 在部分我会有一个if块包装我的外部div,它会检查模型,看看它包含的url是否是可以显示部分的url。
我不喜欢这种方式,因为我必须在if block check
中对url进行硬编码@if( Model == "/Test/Home")
{
<div>
Just an example
</div>
}
最好的方法是什么?
由于
答案 0 :(得分:3)
即使您在视图中进行了最初预期的验证,也不需要使用硬编码字符串。
您可以使用
Request.Url.AbsolutePath
获取您当前的网址和
Url.Action("action", "controller")
生成不可接受的位置。
那就是说,我会让你的逻辑决定是否在你的控制器中显示局部视图。
if(showPartialView)
return PartialView("_MyPartial");
else
return new EmptyResult();
答案 1 :(得分:0)
根据请求决定行动是财务主任的责任。由于控制器选择视图,为什么不选择部分?在控制器中找出您想要的部分内容(如果有),并将其传递给视图模型上的视图。