美好的一天,这是我的第一个问题,所以请善待。我刚刚从表单迁移到 mvc。我做了以下路线(下)。我构建了一个局部视图,其中还包含 2 个其他局部视图(如下所示)。提交后,网址将类似于“查找/索引?区域=3&兴趣=1”
创建与定义的路线 'Find/Index/In-Wales-3/Sport-1'匹配的友好 url 的最佳方法是什么?我可以发布然后重定向,但我认为这可能效率低下。更好的方法可能是使用 jquery?
还请说明使用的设计是否正确或是否可以改进?分离视图的原因是因为它们用于多个视图。
提前致谢!
路由配置
routes.MapRoute(
name: "Find",
url: "{controller}/{action}/In-{region}-{rid}/{interest}-{iid}",
defaults: new { controller = "Find", action = "Index", region = UrlParameter.Optional,
rid = UrlParameter.Optional,
interest = UrlParameter.Optional,
iid = UrlParameter.Optional
});
在母版页上呈现的部分视图
@model SimpleFriendFinderModel
<h1>Find</h1>
<div>
@using (Html.BeginForm("Index", "Find", FormMethod.Get))
{
@Html.Partial("_RegionDropDown", @Model.Regions)
@Html.Partial("_InterestDropDown", @Model.Interests)
<div>
<button>SEARCH</button>
</div>
}
</div>
区域局部视图
@model IEnumerable<Region>
<select id="Region" name="Region">
<option>REGION</option>
@{ foreach(var item in Model) {
<option value="@item.RegionID">@item.RegionName</option>
}
}
</select>
另一个局部视图是 Region 的复制品,但显然是不同的模型。