【问题标题】:Url.Action for area asp.net cor mvc区域 asp.net cor mvc 的 Url.Action
【发布时间】:2020-12-29 15:09:59
【问题描述】:

Javascript 代码:

<script type="text/javascript">

              url = '/Masters/GLMaster/SearchGLPartial';
               // url='@Url.Action("SearchGLPartial", "GLMaster")';
               
                let name = document.getElementById("Name").value;
                let code = document.getElementById("Code").value;
             

                var data = { "Name": name, "Code": code};
                var o = Object.keys(data).map(k => k + "=" + encodeURIComponent(data[k])).join("&")
               
              var resulturl=url + "?" + o;


    ...other code

</script>

如果我将硬编码网址更改为以下代码

url='@Url.Action("SearchGLPartial", "GLMaster", new { area = "Masters" })';

我的没有区域的代码工作正常。它生成带有参数的 url..

但是对于区域不起作用

当前结果:(url)

  '/GLMaster/SearchGLPartial?area=Masters';

我还需要附加附加参数..它是冲突的

预期输出:'Masters/GLMaster/SearchGLPartial';

编辑:

我的端点路由配置:

 app.UseEndpoints(endpoints =>
            {
            
                endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=LandPage}/{id?}");
                endpoints.MapControllerRoute( name: "areas", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
             

                                
            });

【问题讨论】:

  • areas 路由放在default 路由之前怎么样?
  • 谢谢你verch @Rena 现在工作..谢谢

标签: javascript c# asp.net-core


【解决方案1】:

如下更改路线模板的顺序:

app.UseEndpoints(endpoints =>
{         
     endpoints.MapControllerRoute( name: "areas", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
     endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=LandPage}/{id?}");                               
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 2010-12-18
  • 2013-02-23
  • 2011-03-17
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多