2013-05-06 52 views
0

顯示,從而現在如果我想改變我基於關閉配置的頁面上顯示的內容部分觀點我做後續PartialView結果:最好的方法來切換是基於配置

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

呼叫呈現局部視圖:

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

控制器的ActionResult:

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

我將使用名稱爲ProductName的命名約定來命名部分視圖,公司名稱將是可變的。這樣做會感覺錯誤而且效率低下。儘管我仍然對.NET MVC非常陌生,只是想知道最佳方法是什麼,謝謝!

+0

您是否擁有多個鍵,如「InstanceOwner」?所以你會有像''? – 2013-05-06 08:08:04

+0

不,計劃是隻更改配置鍵的值,如果我不得不更改應用程序正在使用的實例(哪個客戶)。 – 2013-05-06 13:40:00

回答

1

的計劃是隻需要改變,如果我 不得不改變其實例(客戶)的基礎上註釋的應用程序正在使用 爲

則配置項的值它可以像讀取配置值一樣簡單,並使用它來確定顯示哪個視圖。您不需要接受控制器方法的任何參數。

public ActionResult ProductFeature() 
{ 
    var prefix = ConfigurationManager.AppSettings["InstanceOwner"]; 
    return PartialView(prefix+"ProductFeature"); 
} 
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> 

希望這回答你的問題

+0

我正在使用MVC3,但我們還沒有在應用程序的任何位置使用視圖模型。 – 2013-05-06 13:42:40

+1

我認爲ViewModel是維護控制器和視圖之間數據的好方法,應該研究它,我將它用在我的所有項目中。其他的做法是你可以使用ViewBag,你可以在這裏找到一些參考 http://www.codeproject.com/Articles/476967/WhatplusisplusViewData-2cplusViewBagplusandplusTem – Raver0124 2013-05-07 00:12:35

+0

這是一個很好的資源,謝謝!通讀它可以看出你的意思。如果我們的團隊習慣了更像這樣的方法,這可能會很好。 – 2013-05-07 13:29:56

相關問題