2013-10-24 60 views
0

我有以下文件夾結構: 控制器/ EntityController 查看/實體/ Index.cshtml 查看/共享/ DisplaTemplates/CustomEntity.cshtmlMVC - Html.ActionLink上DisplayTemplate不渲染

EntityController:

Index.cshtml的
public ActionResult Index() 
{ 
    var entities = CustomEntityRepository.GetAll(); 
    return View(entities); 
} 

public ActionResult Edit(int id) 
{ 
    if (id == 0) 
    { 
     return HttpNotFound(); 
    } 
    var entity = CustomEntityRepository.Find(e => e.ID == id); 
    return View(entity); 
} 

含量研究:CustomEntity.cs的

@model IEnumerable<CustomEntity> 

@{ 
    ViewBag.Title = "Index"; 
} 
@Html.DisplayForModel() 

內容HTML:

@model CustomEntity 
<div> 
    Entity: 
    <strong>@Model.Name</strong> 
    @Html.ActionLink("Show All","Edit","Entity", new { id= @Model.ID}, null) 
    @Html.LabelFor(m=>m.Icon): 
    @Model.Icon 
    @Html.LabelFor(m=>m.TypeName): 
    @Model.TypeName 
</div> 

編輯: 路由配置:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

然而,ActionLink的不我所期望的方式工作。我希望ActionLink使用每個實體提供的ID指向EntityController Edit動作。相反,它呈現以下網址:

http://localhost/MySite/Reports?action=Edit&controller=Entity&id=1 

我不知道/ Reports /來自哪裏。

謝謝!

+0

你能後結束你的路由配置?或者確認它是默認的(即「{controller}/{action}/{id}」)? –

回答

0

使用Html.RouteLink指定路由名稱

@Html.RouteLink("Show All", "Default", new { Controller = "Entity", Action = "Edit", id = Model.Id }) 

其他選項是改變你的地圖路線順序,默認路由應該是你的路線配置文件

問候