Ash*_*ani -1 c# model-view-controller asp.net-mvc routing
我有这个路由:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{culture=en-US}/{controller=Home}/{action=Index}/{p1?}/{p2?}");
});
Run Code Online (Sandbox Code Playgroud)
最后两个项是可选的,实际上它们在大多数页面中都不存在,并且是针对特定页面的(我也希望它是登录页面)但是它不允许为可选参数定义值.
我试过{p1?=somevalue},我得到一个错误,告诉我?必须是最后一个角色.{p1=somevalue?}也不起作用.
不应该是:
routes.MapRoute(
name: "default",
url: "{culture}/{controller}/{action}/{p1}/{p2}",
defaults: new
{
culture = "en-US",
controller = "Home",
action = "Index",
p1 = UrlParameter.Optional,
p2 = UrlParameter.Optional
}
);
Run Code Online (Sandbox Code Playgroud)
然后您的方法签名将是这样设置默认值:
public ActionResult Index(var p1 = defaultValue, var p2 = defaultValue)
Run Code Online (Sandbox Code Playgroud)
据我所知,您无法在网站范围内设置默认值,仅适用于他们应用的每个操作.
虽然你看起来像是在尝试使用RouteAttribute它的方式,但你尝试的方式是:
[HttpGet("{p1:var?}{p2:var?}"]
public ActionResult Index(var p1 = defaultValue, var p2 = defaultValue)
Run Code Online (Sandbox Code Playgroud)
请注意:我使用过,var因为我不知道你的方法签名是什么,defaultValue因为我不知道你的默认值.
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |