Mor*_*ner 8 c# asp.net-mvc html5 asp.net-mvc-4
根据这个问题,我应该能够写出这样的东西:
@Html.ActionLink( "Delete", "Delete", "Message", new { data_id=id, @class="delete" } )
Run Code Online (Sandbox Code Playgroud)
或者作为一个快乐的T4MVC用户可以做到:
@Html.ActionLink( "Delete", MVC.Message.Actions.Delete(), new { data_id=id, @class="delete" } )
Run Code Online (Sandbox Code Playgroud)
并在渲染期间替换"data_id"中的下划线:
<a href="/message/delete" class="delete" data-id="42">Delete</a>
Run Code Online (Sandbox Code Playgroud)
但是,这似乎不适用于MVC 4测试版.其他人看到这个问题?
这是故意改变,如果是,我该怎么办?
更新 - 如何修复(手动)
我已将以下更改应用于T4MVC.tt文件,该文件修复了生成的代码中的问题:
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, ActionResult result, object htmlAttributes, string protocol = null, string hostName = null, string fragment = null) {
//was: return ActionLink(htmlHelper, linkText, result, new RouteValueDictionary(htmlAttributes), protocol, hostName, fragment);
return htmlHelper.RouteLink(linkText, null, protocol, hostName, fragment, result.GetRouteValueDictionary(), HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}
Run Code Online (Sandbox Code Playgroud)
更新2 - 可用
David Ebbo在回应报道的问题时迅速闪电,并已将上述修复程序合并到T4MVC中.
更新3 - 修复固定
相当令人尴尬的是,提交的原始修复确实不起作用,因为它仍称为无效重载.我现在已经修改了代码,就像内部使用MVC一样(使用他们的帮助方法),并通知David将它包含在T4MVC中.从codeplex获取2.6.70 或在发布时使用NuGet进行更新,可能很快就会发布.
尝试
@Html.ActionLink( "Delete", "Delete", "Message", null, new { data_id=id, @class="delete" } )
我认为这是因为假设您的第4个参数是routeValues参数,所有重载都是如此.
归档时间: |
|
查看次数: |
2484 次 |
最近记录: |