我已经构建了一个MVC 5应用程序,可以从DLL动态加载子应用程序。一切都按预期工作,但在某个地方,我注意到尽管使用Post,我的模型似乎开始出现在查询字符串中。
他们看起来像这样:
http://localhost:64921/Access/LookupUser?PageModel=AccessChecker.App.Models.UserLookup
虽然我希望它们看起来像这样:
不幸的是,在一段时间内必须将其放在另一个项目的一边,我只是回到它。我知道在我把它放下之前,我试图重建应用程序的一部分,试图解决这个问题并且没有遇到它的原因。
因为我的路由是动态生成的,所以我无法显示代码片段,但这里是路由URL值(按运行顺序排列):
“__ browserLink /的RequestData / {的requestId}”
“”
“API / {控制器} /(编号)”
“{}资源个.axd / {*} PATHINFO”
“{控制器} / {行动} /(编号)”
“CAS / {控制器} / {行动} /(编号)”
“App1的/ {控制器} / {行动} /(编号)”
“App2的/ {控制器} / {行动} /(编号)”
“App3的/ {控制器} / {行动} /(编号)”
“访问/ {控制器} / {行动} /(编号)”
我的控制器操作如下所示:
public ActionResult LookupUser(UserLookup LookupModel, FormCollection FormData)
{
UserLookup UL = null;
...
return View(UL);
}
视图中的表单如下所示:
@using (Html.BeginForm("LookupUser", Application.ApplicationPrefix, new { PageModel = Model }, FormMethod.Post, new { id = "LookupArea", @class = (Model.Memberships.Count > 0 ? "LoadedWithContent" : ""), role = "form" }))
{
...
<input type="submit" id="Submit_btn" value="Lookup" />
...
}
除了许多其他尝试之外,我尝试取出默认路由,将“{controller} / {action} / {id}”移到最后,取出无关路由,删除“,FormCollection FormData”和大量我早已忘记的事情。在Global.asax.cs中进入Application_BeginRequest的URL上有模型。
我还重写或扩展了MVC框架的重要部分,以便从DLL,安全检查或错误重定向启用动态内容,因此它可能与某些部分有关,或者它可能像表单参数一样简单或路线顺序(即使我试图检查)。
任何关于在何处缩小查看范围或了解可能导致此问题的范围的指导都将受到赞赏。
答案 0 :(得分:0)