Fab*_*cio 6 asp.net-mvc asp.net-mvc-4
我设置了这样的路线:
routes.MapRoute(
name: "Pesquisar",
url: "Pesquisar/{aaa}/{bbb}/{id}",
defaults: new { controller = "Home", action = "Pesquisar",
aaa = UrlParameter.Optional,
bbb = UrlParameter.Optional,
id = UrlParameter.Optional
}
);
Run Code Online (Sandbox Code Playgroud)
当我按一个表单中的发送按钮(使用GET方法)时,网址就像这样:
http://localhost:00000/Pesquisar?aaa=One&bbb=Two
Run Code Online (Sandbox Code Playgroud)
但我期待:
http://localhost:00000/Pesquisar/One/Two
Run Code Online (Sandbox Code Playgroud)
不确定您是否直接从 html 表单获得干净的 URL GET。
一个建议是对其POST执行一项操作,对数据执行您需要执行的操作,然后在完成后重定向到您的干净 URL。
例如
视图模型:
public sealed class PesquisarModel
{
public string aaa { get; set; }
public string bbb { get; set; }
public string id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器动作:
[HttpGet]
public ActionResult Pesquisar(PesquisarModel m)
{
return View();
}
[HttpPost]
[ActionName("Pesquisar")]
public ActionResult PesquisarPost(PesquisarModel m)
{
//do stuff
return RedirectPermanent("/pesquisar/" + m.aaa + "/" + m.bbb + "/" + m.id);
}
Run Code Online (Sandbox Code Playgroud)
看法:
@model MyApplication.Models.PesquisarModel
@using (Html.BeginForm())
{
@Html.TextBoxFor(m => m.aaa)
@Html.TextBoxFor(m => m.bbb)
@Html.TextBoxFor(m => m.id)
<button type="submit">Submit</button>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |