【发布时间】:2010-04-10 04:11:20
【问题描述】:
我怀疑某处存在某种隐藏的魔法,它阻止了 T4MVC 中所有看似实际的方法调用。然后我的视图编译失败,stackTrace 进入了我的实际方法。
[Authorize]
public string Apply(string shortName)
{
if (shortName.IsNullOrEmpty())
return "Failed alliance name was not transmitted";
if (Request.IsAuthenticated == false || User == null || User.Identity == null)
return "Apply authentication failed";
Models.Persistence.AlliancePersistance.Apply(User.Identity.Name, shortName);
return "Applied";
}
所以这个方法毕竟不是在模板中生成的。
<%=Ajax.ActionLink("Apply", "Apply", new RouteValueDictionary() { { "shortName", item.Shortname } }, new AjaxOptions() { UpdateTargetId = "masterstatus" })%>
<%=Html.ActionLink("Apply",MVC.Alliance.Apply(item.Shortname),new AjaxOptions() { UpdateTargetId = "masterstatus" }) %>
第二种方法在编译时抛出异常,因为我的控制器中的方法Apply 有一个[Authorize] 属性,所以如果没有登录的人点击这个,他们会被重定向到登录,然后马上回到这个页。在那里他们可以再次点击应用,这次是登录。
是的,我意识到一个是 Ajax.ActionLink 而另一个是 Html.ActionLink 我确实在 T4MVC 版本中尝试了它们。
【问题讨论】:
标签: asp.net-mvc t4mvc