Dan*_*son 10 asp.net-mvc t4mvc html.actionlink
有没有办法在其中创建一个带有哈希/磅/片段的强类型T4MVC ActionLink?
例如,这是我想要创建的链接:
<a href="/Home/Index#food">Feed me</a>
Run Code Online (Sandbox Code Playgroud)
但是没有可以做到这一点的T4MVC对象的扩展.
<%= Html.ActionLink("Feed me", T4MVC.Home.Index()) %>
Run Code Online (Sandbox Code Playgroud)
所以,我最终要做的是创建一个动作,然后以这种方式嵌入它:
<a href="<%= Url.Action(T4MVC.Home.Index()) %>"#food>Feed me</a>
Run Code Online (Sandbox Code Playgroud)
这不是很理想.任何人有任何想法/建议?
提前致谢
在ASP.NET MVC 2.0中添加了新的助手,允许您指定片段.例:
<%= Html.ActionLink("Feed me", "Action", "Controller", null, null, "food", null, null) %>
Run Code Online (Sandbox Code Playgroud)
这种方法是我唯一能想到的方法(对我来说)比手动编写锚点要好一些:
${Html.ActionLink("Feed me", T4MVC.Home.Index(), Fragment: "food")}
Run Code Online (Sandbox Code Playgroud)
除了spark viewengine - 它需要1个旧的htmlhelper扩展方法和命名参数.
我假设这在默认的viewengine中不可用?我决定为ActionLink编写一个快速扩展,但它并不优雅,我希望在未来版本的T4MVC中可以使用任何其他解决方案.
Spark用$ {}替换<%=%>.提到只是因为我更喜欢它(如果你强调代码优雅,你应该尝试它).需要C#4.0才能使用命名参数.
那是因为我想避免丢失参数"food"参数映射的信息.
是的,我非常赞同Mattias Jakobsson.