0

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

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

调用渲染局部视图:

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

控制器动作结果:

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

我将使用 companyName-ProductFeature 命名约定来命名部分视图,公司名称将是可变的。这样做感觉错误且效率低下。不过,我对 .NET MVC 还是很陌生,只是想知道最好的方法是什么,谢谢!

4

2 回答 2

1

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

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

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

然后在视图中,(index.cshtml)

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

并在部分视图中(_ProductFeature.cshtml)

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

希望这能回答你的问题

于 2013-05-06T08:26:47.697 回答
1

如果我必须更改应用程序用于哪个实例(哪个客户),则计划只是更改配置键的值

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

public ActionResult ProductFeature()
{
    var prefix = ConfigurationManager.AppSettings["InstanceOwner"];
    return PartialView(prefix+"ProductFeature");
}
于 2013-05-06T13:50:23.663 回答