是否可以在MVC RouteConfig文件中使用变量



我正在尝试查看是否可以将routes.MapRoute的操作部分用于routeconfig.cs文件中的路由

我尝试了:

        routes.MapRoute(
           name: "Person",
           url: "person/{action}/{param1}",
           new { controller = "Person", action ={action], param1 = UrlParameter.Optional }
       );

尝试使用action = {action}时,尝试在新部分中使用{action}会产生语法错误。

如何使用变量设置新的控制器操作?

如果您在URL参数中指定了{action},则将用作操作。我认为您与默认参数感到困惑。在此处,您指定默认值,因此{Action}之类的东西不合时宜。

我相信这是您要寻找的代码

  routes.MapRoute(
                name: "Person",
                url: "person/{action}/{param1}",
                defaults: new { controller = "Person", action ="Index", param1 = UrlParameter.Optional } );

假设这是您的个人控制器

using System.Web.Mvc;
namespace ActionVar.Controllers
{
    public class PersonController : Controller
    {
            public ActionResult Index(string param1 = null)
        {
            return Content($"Person controller default action.  Param1 ={param1}");
        }
        public ActionResult Edit(string param1 = null)
        {
            return Content($"Person controller edit action.  Param1 ={param1}");
        }
    }
}

一些URL以及如何将它们用于上述控制器:

  • /person-在这种情况下,没有提供任何操作,因此将使用默认操作,即索引,param1的值将为null
  • /person/index/myparam1-人索引之后的字符串,因此这将是动作,而param1的值将是myparam1
  • /person/edit/myparam1-这次操作将进行编辑,而param1将采用myparam1的值

相关内容

  • 没有找到相关文章

最新更新