我有一个类似这样的操作方法
public ActionResult MethodName(int num)
{
viewmodel model = GetDetails(num)
return View(model);
}
路由配置如下
routes.MapRoute(
name: "MethodName",
url: "{ControllerName}/{MethodName}",
defaults: new {controller = "controllerName", action="MethodName"}
);
我的问题是它给出了URL www.mysite.com/controller/Method?message= 78545
我希望拥有它
www.mysite.com/controller/Method/78545
有人可以帮我吗?我该如何实现?我尝试在没有帮助的情况下更改路由配置。我需要重写任何URL还是在路由配置中对此进行小的修补?
谢谢。
答案 0 :(得分:1)
更改路由映射以具有可选的num参数:
import Papa from 'papaparse';
class Dialog extends React.Component {
...
handleFileChange = () => {
...
Papa.parse(file, config);
...
}
...
}
答案 1 :(得分:0)
如果您不希望参数产生查询字符串,则需要向MapRoute添加可选参数。然后,使用要传递给操作结果的值加载参数。
在下面的示例中,您可以通过使用“ controller / action / op1”或“ controller / action / op1 / op2”调用该方法来访问该方法。 (如果op1等于值1,则该网址将看起来像“ controller / action / 1”,其他参数相同)
[添加可选参数]
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{op1}/{op2}/{op3}",
defaults: new { controller = "Home", action = "Index", op1 = UrlParameter.Optional, op2 = UrlParameter.Optional, op3 = UrlParameter.Optional }
);