MVC问题与模型出现在查询字符串
本文关键字:查询 字符串 问题 模型 MVC | 更新日期: 2023-09-27 18:17:24
我已经构建了一个MVC 5应用程序,它可以从dll动态加载子应用程序。一切都如预期的那样工作,但在途中的某个地方,我注意到我的模型开始出现在查询字符串中,尽管使用Post。
它们看起来像这样:
http://localhost: 64921/访问/LookupUser ? PageModel = AccessChecker.App.Models.UserLookup
虽然我希望它们看起来像这样:
http://localhost: 64921/访问/LookupUser
不幸的是,这不得不放在一边的另一个项目一段时间,我只是回到它。我知道在我放下它之前,我试图重新构建应用程序的很大一部分,试图解决问题,但没有遇到问题的原因。
因为我的路由是动态生成的,所以我不能显示代码片段,但这里是路由URL的值(按运行时的顺序):
" __browserLink requestData/{requestId}"
"
" api/{控制器}/{id}"
"{资源}.axd/{* pathInfo}"
"{控制器}/{行动}/{id}"
" CAS/{控制器}/{行动}/{id}"
" App1/{控制器}/{行动}/{id}"
" App2/{控制器}/{行动}/{id}"
" App3/{控制器}/{行动}/{id}"
"访问/{控制器}/{行动}/{id}"
我的控制器动作看起来像这样:
public ActionResult LookupUser(UserLookup LookupModel, FormCollection FormData)
{
UserLookup UL = null;
...
return View(UL);
}
View中的表单看起来像这样:
@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的动态内容,安全检查或错误重定向,因此它可能与其中的某些部分有关,或者它可能是一些简单的东西,如表单参数或路由顺序(即使我试图检查)。
任何指导在哪里缩小在哪里看的范围或洞察什么可能导致这将是感激。
上面Stephen的建议纠正了我的问题(主要是通过森林看到树木)。