显示基于网址的部分视图

时间:2012-05-03 23:15:38

标签: asp.net-mvc razor

我在_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>

}

最好的方法是什么?

由于

2 个答案:

答案 0 :(得分:3)

即使您在视图中进行了最初预期的验证,也不需要使用硬编码字符串。

您可以使用

Request.Url.AbsolutePath

获取您当前的网址和

Url.Action("action", "controller")

生成不可接受的位置。

那就是说,我会让你的逻辑决定是否在你的控制器中显示局部视图。

if(showPartialView)
   return PartialView("_MyPartial");
else
   return new EmptyResult();

答案 1 :(得分:0)

根据请求决定行动是财务主任的责任。由于控制器选择视图,为什么不选择部分?在控制器中找出您想要的部分内容(如果有),并将其传递给视图模型上的视图。