我已经使用 ASP.NET MVC 工作了 8 个月。我知道基本的路由以及它是如何工作的,但我心中没有几个问题。
首先,我必须解释一下我所知道的,对吧?因此,例如在下面的路由中,我知道模式及其工作原理。
routes.MapRoute(
"Categories",
"category/{CategoryName}",
/*If I use 'mysite.com/category/anything'
it will look into the 'News' controller and
then Category action with the given
parameter('anything') in the category
action's with the same name parameter.
EG. public ActionResult Category(Anytype CategoryName) { ... }
*/
new { controller = "News", action = "Category", CategoryName = "" },
new string[] { "MyProj.Controllers" } //it is for specifying specific
//Namespace, mostly used for distinguishing between area routing and regular routing
);
现在如果在上面的例子中我有类似的方法
public ActionResult Category(Anytype CategoryName2)
上面的路线不起作用,因为参数名称不匹配。但是,如果我将类别操作中的表单提交到同名操作,例如:
[HttpPOST]
public ActionResult Category(ModelType Anyname){...}
它工作得很好。但是,如果我从其他地方提交表格,它会起作用吗?
另一件事,当我们使用 [HttpGET] 注解时,它可以接收任何参数,没有限制,那么为什么只限制非动作动词注解的动作呢?谁能简要解释一下这个事实?
例如,我的这篇文章可以帮助我理解我的意思。我终于改变了路线以使其工作。
是否可以/正确在一页中以 2 种不同形式使用多个 @Html.AntiForgeryToken()?
谢谢大家。