我在我的MVC 4
項目中有這個簡單的用戶Area
。MVC ActionLink觸發RouteConstraint?
public class UserAreaRegistration : AreaRegistration
{
public override string AreaName { get { return "User"; } }
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute("User_Constraint",
"{userName}/{controller}/{action}/{id}",
new { userName = string.Empty, controller = "Products", action = "Index", id = UrlParameter.Optional },
new { userName = new UserNameRouteConstraint() },
new[] { "T2b.Web.Areas.User.Controllers" }
);
}
}
爲了確保用戶名存在,我有一個名爲RouteConstraint
UserNameRouteConstraint()
這一切都在我的用戶表一個簡單的查找,如果用戶已經發現返回true。
到目前爲止好,這個建設工作正常!
現在;我在用戶Area
視圖具有代碼
@Html.ActionLink("More information", "details", new {id = product.Guid})
以下行此單行導致被稱爲UserNameRouteConstraint()
....
如何以及爲什麼!?如果我用普通的HTML
編寫鏈接(請參見下面的示例),它可以很好地工作,但我希望儘可能接近MVC
原則。
<a href="/username/Products/details/@product.Guid">More information</a>
有沒有辦法阻止RouteConstraint
的調用?
您的純HTML()的外觀如何? –
我已經添加了'HTML'行...只是簡單的'HTML' :-) – 321X
你正在爲{userName}傳遞「username」。它將需要名稱爲「用戶名」的用戶存在。它提供了什麼? –