【问题标题】:How to retrieve an actionlink text in a controller?如何在控制器中检索动作链接文本?
【发布时间】:2018-05-19 06:54:21
【问题描述】:

我的导航栏中有一个这样的操作链接列表

  • @Html.ActionLink("客户资料", "索引", "资料")
  • @Html.ActionLink("供应商简介", "索引", "简介")
  • @Html.ActionLink("Publisher Profile", "Index", "Profile")
  • 现在我需要在我的控制器中检索链接文本,通过比较链接文本的值来在属性中分配一些值,像这样

     [HttpGet]
        public ActionResult Index()
        {
            Profile profile = new Profile();
            if(linktext=="Customer Profile")
            {
                profile.cust_supply_cat_id = 1;
            }
            else if (linktext == "Supplier Profile")
            {
                profile.cust_supply_cat_id = 2;
            }
            else if (linktext == "Publisher Profile")
            {
                profile.cust_supply_cat_id = 3;
            }
    
            return View(profile);
    
        }
    

    我该怎么做?

    或者如果你知道有什么可能的方法来做到这一点?

    【问题讨论】:

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


      【解决方案1】:

      您可以从 Html.ActionLink 发送一个值,例如:-

      @Html.ActionLink("Customer Profile", "Index", "Profile", new { linktext: "Customer Profile", null })
      

      然后接收控制器中的值作为参数的参数,例如:-

      [HttpGet]
      public ActionResult Index(string linktext)
      {
          //your code
      }
      

      【讨论】:

      • 网址变成这样 localhost:5295/Navigation?Length=7 并在“/”应用程序中显示服务器错误。无法找到该资源。说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。请求的 URL:/Navigation 版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.7.3056.0
      • t 作为
      • @Html.ActionLink("Publisher Profile", "Index", "Profile", new { linkTest="Something" },null)
      • 解释什么是机制
    • 我已经编辑了我的答案,基本上 Html.ActionLink 是一种方法,它有不同的重载版本,接受不同的参数。在这个重载版本中,第一个参数是要在页面上呈现的文本,第二个参数是动作名称,第三个参数是控制器的名称,然后我们传递一个带有值的匿名对象,该值将被附加到 url 并在 action 方法中用作参数
    • @RaihanRidoy 没问题 :) 如果它解决了您的问题,请接受答案
    • 【解决方案2】:

      您可以向索引函数添加一个参数。 例如:

      public ActionResult Index(int id).
      

      然后将参数值添加到您的 ActionLinks。 例如:

      @Html.ActionLink("Publisher Profile", "Index", "Profile", new {id = 1}, null)
      

      希望这对你有用。

      【讨论】:

      • 网址变成这样 localhost:5295/Navigation?Length=7 并在“/”应用程序中显示服务器错误。无法找到该资源。说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。请求的 URL:/Navigation 版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.7.3056.0
      • 它的作用是
      • @Html.ActionLink("Publisher Profile", "Index", "Profile", new { id=3 },null)
      • 但你能解释一下是什么是机制
    • 该机制称为“RouteValues”。见:msdn.microsoft.com/en-us/library/dd504972(v=vs.118).aspx
    • 猜你喜欢
      相关资源
      最近更新 更多
      热门标签