问题
I was trying to add a css class to anchor but while rendering to html the href attribute has query string with value 4. The controller name "Home" length is appended to href link. If I remove the css class it's working fine. Ho to avoid the autogenerated query string value.
Razor Code:
@Html.ActionLink("Create Application", "CreateApplication", "Home", new {@class="link"});
Rendered html is :
<a href="/Account/CreateApplication?Length=4" class="link">Create Application</a>
回答1:
If you want to pass the controller name as a parameter you can use the following signature:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
Object routeValues,
Object htmlAttributes
)
So, you should use it like this:
@Html.ActionLink("Create Application", "CreateApplication", "Home", null, new { @class = "link" });
回答2:
The signature you're calling is
ActionLink(string text, string actionName, object rotueValues, object htmlAttributes)
In particular, the third parameter is not a controller name, but an object of parameters to build the route from.
You can pass new { controller = "..." }
来源:https://stackoverflow.com/questions/17640536/to-avoid-auto-generated-query-string-value-in-actionlink