zoukankan      html  css  js  c++  java
  • asp.net mvc 生成“*/?Length=*”的情况解决方法




    以前用asp.net mvc做东西的时候经常出现“*/?Length=*”的情况。那时没有什么好的解决方法,就通过静态链接来解决,问题当然也很多。最近又出来了这样的情况,语句是<%= Html.ActionLink("Default", "Index", "Default", new { id = 1 })%>,以前技术不行还可以忍受,现在怎么能行呢。果断Google,"asp.net mvc Length=5",第一条就是。

    链接地址:http://stackoverflow.com/questions/316889/asp-net-mvc-passing-an-id-in-an-actionlink-to-the-controller。看了一下,情况和我的差不多,解决办法就是在ActionLink参数后面再加一个null。什么原因呢?

    原来Html.ActionLink("Default", "Index", "Default", new { id = 1 })对应的重载是下面这个:
    public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, object htmlAttributes);
    而自己想要的重载是public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues),可惜它没有也不会有(会重载冲突)。而加一个null参数就是下面这个重载了
    public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes);
    这个正是自己想要的。在ActionLink后再增加一个null就符合后面一个重载了,果断生成。OK,<ahref="/Default/Index/1">Default</a>

  • 相关阅读:
    Java面向对象
    Java方法
    Java控制语句
    Java接收用户键盘输入
    Java运算符
    Java类型转换
    Java的加载与执行
    Java关键字
    Java常见的DOS命令及JDK
    nginx学习要点记录
  • 原文地址:https://www.cnblogs.com/smailxiaobai/p/2335518.html
Copyright © 2011-2022 走看看