切换基于配置显示的PartialView结果的最佳方法

时间:2013-05-06 07:27:50

标签: c# asp.net asp.net-mvc

所以现在,如果我想更改我在基于关闭配置的页面上显示的部分视图,请执行以下操作:

配置项目:     <add key="InstanceOwner" value="companyName" />

调用渲染部分视图:

 <div id="" class="sidebarBox side-box3">
      Html.RenderAction("ProductFeature", "Dashboard");
 </div>

Controller ActionResult:

[OutputCache(Duration = 1)]
[ValidateInput(false)]
public ActionResult ProductFeature(string viewName = InstnaceOwner+"ProductFeature")
{
  return PartialView(viewName);
}

我将使用nameName-ProductFeature的命名约定命名部分视图,公司名称将是可变的。这样做是错误和低效的。我仍然是.NET MVC的新手,只是想知道最好的方法是什么,谢谢!

2 个答案:

答案 0 :(得分:1)

您使用的是什么版本的MVC?

如果我是你,我会在进入页面控制器后立即获得所有数据(例如HomeController)

    public ActionResult Index()
    {
        var model = new SomeViewModel();
        model.ProductFeature = InstnaceOwner + "ProductFeature"
        return View(model); 
    }

然后在View中,(index.cshtml)

     @Html.Partial("_ProductFeature", Model.ProductFeature)

并在部分视图(_ProductFeature.cshtml)

     @model string
     <span>Product Feature is @model</span>

希望这能回答你的问题

答案 1 :(得分:1)

  

计划是只改变配置键的值,如果我的话   必须更改正在使用该应用的实例(哪个客户)   对

根据该评论,它可以像读取配置值一样简单,并使用它来确定要显示的视图。您不需要接受控制器方法的任何参数。

public ActionResult ProductFeature()
{
    var prefix = ConfigurationManager.AppSettings["InstanceOwner"];
    return PartialView(prefix+"ProductFeature");
}