第一个 MVC4 项目,我已经达到了缓冲区...
我希望能够引用我的网站页面;
菜单/子菜单/文档/ID
如果 ID 值是可选的,并且最后标记了任何其他内容,模型将处理文档部分,该部分将作为文本,例如,
HOME/欢迎光临/欢迎光临本店
所以我设置了一条路线(只有一条路线)
routes.MapRoute(
name: "Default",
url: "{menu}/{submenu}/{document}/{id}",
defaults: new {
controller = "Page",
action= "Data",
menu = "",
submenu = "",
document = "",
id = ""}
我有一个控制器;
public class PageController : Controller
{
// Default view option for documents
public ActionResult Data(string menu, string submenu, string document, string parameters)
{
// Set the View to use rather than it default;
string thisView = "Data";
return View(thisView);
}
}
我们有一个引用 _MenuPartial.cshtml 文件的 _Layout.cshtml 文件
@model MyNameSpace.Models.PageModel
<ul>
@foreach (var item in Model.Menus.MainMenu)
{
<li>@Html.ActionLink(item.Label, "Page", "Data", new
{
menu = "MENU",
submenu = "SUBMENU"
},
null
)
</li>
}
</ul>
以上所有内容都使用正确的文本等动态地写出我的主菜单。
但是,当我单击一个标签时,路由似乎很高兴地映射到 PageControllers Data 函数,但字符串菜单、字符串子菜单、字符串文档、字符串参数的值为“”或 null。
如果我修改 URL,那么它们会正确传递。
我确信这只是对我应该做的事情的误解,我希望一旦有好心人发现它,我就会离开并逃跑!
谢谢安迪