2016-07-07 94 views
0

我有一個MVC應用程序與區域,並在一個地區我使用一個稱爲地址在「Areas/Admin/Views/Shared/EditorTemplates /」文件夾中的編輯器模板。MVC編輯器模板路徑問題與屬性路由

其與編輯模板返回視圖控制器操作是「EditUser(長用戶id)」中的用戶控制器(它是在管理區)

我在視圖編輯模板:

@Html.EditorFor(x => x.Address, "../Views/Shared/EditorTemplates/Address") 

這也適用於未明確定義路徑。

通過「..Admin/User/EditUser?userId = 1」訪問此頁面可以正常工作。但是,當我在EditUser上使用屬性路由時:

[Route("admin/user/{userId}/edit")] 

編輯器模板採用默認視圖。 (基本上顯示模型中的所有內容的編輯器)

我的問題是如何指向具有上述屬性路由的編輯器模板?

回答

0

您可以使用[UIHint]來指定要使用特殊編輯器的ViewModel中的屬性來指定編輯器模板的名稱。

public class ViewModel { 
    [UIHint("Address")] 
    public string Address {get; set;} 
} 
+0

似乎沒有工作。這裏的問題不是Razor引擎無法找到地址編輯器模板的路徑嗎? – Nadeeja

+0

看起來像:(UIHint將以正常方式搜索模板,即Area \ Views \ {Controller} \,然後是Area \ Views \ Shared \,然後是Views \ ... –

0

好吧,我通過運氣解決了它。

基本上我在我的控制器的頂部添加了一個[RouteArea(「Admin」)]標記,將路由屬性添加到正常的操作中,並從Html.EditorFor和左MVC中刪除顯式路徑以決定在哪裏查看爲模板。

工程就像一個魅力。