Ole*_*ers 3 c# asp.net-mvc razor asp.net-mvc-3
我错误地把错误的构造函数放在ActionLink:
@Html.ActionLink("Show Customer", "Load", "Customer", new {Model.Id });
Run Code Online (Sandbox Code Playgroud)
错误是,最后一个参数是类型htmlAttributes而不是routeValues(如预期的那样).所以正确的构造函数应该是:
@Html.ActionLink("Show Customer", "Load", "Customer", new {Model.Id }, null);
Run Code Online (Sandbox Code Playgroud)
所以我不需要解决这个问题......我只是想知道,当我使用错误的构造函数时,我的routeValue必须被解释为htmlAttribute.
我很惊讶它导致了一个length参数.生成的代码是:
/客户/负载?长度= 7
只是出于好奇:它length=7来自哪里?
这是ActionLink的重载,它正在被击中:
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, object htmlAttributes);
Run Code Online (Sandbox Code Playgroud)
所以你唯一的路由值是字符串,控制器名称,"Customer",它有公共属性Length,8个符号.而routeValues正在挑选对象的所有公共属性,并将其传递给它.
值得一提的是,您的链接将收到html属性Id ='whatever_id_model_holds',因为第4个参数映射到htmlAttributes.
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |