加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

Asp.Net MVC – 重载动作方法

发布时间:2020-12-16 03:33:29 所属栏目:asp.Net 来源:网络整理
导读:我创建了一个asp.net mvc网站 我的问题是如何实现重载动作方法 调节器 public ActionResult Index(int id) { //code return View(model); } public ActionResult Index() { //code return View(model); } 视图 div id="menucontainer" ul id="menu" li%= Htm
我创建了一个asp.net mvc网站

我的问题是如何实现重载动作方法

调节器

public ActionResult Index(int id)
    {
        //code
        return View(model);
    }

    public ActionResult Index()
    {
        //code  
        return View(model);
    }

视图

<div id="menucontainer">
            <ul id="menu">          
                    <li><%= Html.ActionLink("Home","Index","Home")%></li>
                    <%if (Page.User.Identity.IsAuthenticated)
                      {%>
                    <li><%= Html.ActionLink("Profilo","Account")%></li>
                    <%} %>
                    <li><%= Html.ActionLink("About","About","Home")%></li>
                </ul>
            </div>

Usercontrol(ascx)插入View中.此用户控件列出了配置文件的朋友(视图)

<td>
            <%= Html.ActionLink(Html.Encode(item.Nominativo),"Account",new { id = item.IdAccount },null)%>
        </td>

全球的asax

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default","{controller}/{action}/{id}",new { controller = "Home",action = "Index",id = UrlParameter.Optional } 
            );
        }

当我在视图中单击操作索引时,返回错误“找不到资源… ecc ..”

我找到了这个问题的几个答案(使用属性ecc ..)但是没有用.

有办法吗?我必须在全局的asax中添加maproute吗?

非常感谢您的回复

解决方法

您需要使用ActionMethodSelector属性装饰两个重载以消除歧义. ASP.NET MVC不知道如何选择适当的重载.

解决方法是在同一方法中处理这两个操作:

public ActionResult Index(int? id) {

   if (id.HasValue) {
      // id present
   } else {
      // id not present
   }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读