将@ Html.ActionLink转换为@ Url.Action

时间:2015-03-27 17:16:20

标签: c# asp.net asp.net-mvc

我试图转换它:

@Html.ActionLink("Register", "Register", "Account", 
  routeValues: null, htmlAttributes: new { id = "registerLink" })

到此

<input type="button" title="Register" 
  onclick="location.href='@Url.Action("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" }

我一直在犯htmlAttributes错误。我试图将第一个链接设为按钮,但保留相同的属性。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

Html属性必须添加到html :)中,如:

<input type="button" title="Register" id="registerLink"
  onclick="location.href='@Url.Action("Register", "Account")'" />

答案 1 :(得分:0)

<input type="button" title="Register" id="registerLink"
  onclick="window.location='@Url.Action("Register", "Account")'" />

它会工作,我已经尝试了另一个ans。但这可以是一种选择。

答案 2 :(得分:0)

答案

@Url.Action既没有linkText也没有htmlAttributes参数。您可以做的是直接使用HTML idvalue属性。

实施例

Here's a working fiddle

在下面的示例中,我已经完成了这项工作并使用了命名参数来说明@Url.Action@Html.ActionLink之间的区别。

LinkExtensions.ActionLink Method

    @Html.ActionLink(
        linkText: "Register", 
        actionName: "Register", 
        controllerName: "Account",
        routeValues: null, 
        htmlAttributes: new { id = "registerLink" })

等效UrlHelper.Action Method

    <input 
        id="registerLink"
        type="button" 
        title="Register" 
        value="Register"
        onclick="location.href='@Url.Action(
            actionName: "Register", 
            controllerName: "Account", 
            routeValues: null)'" />