0

私は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){...}

それはうまく動作します。しかし、別の場所から FORM を送信しても機能しますか?

もう 1 つのことは、 [HttpGET] アノテーションを使用すると、任意の params を受け取ることができるため、制限がないのに、アクション動詞以外のアノテーションが付けられたアクションのみに制限があるのはなぜですか? この事実を簡単に説明できる人はいますか?

例として、私のこの投稿は、私が言いたいことを助けることができます. ついにルートを変更して、それを機能させました。

1 つのページで 2 つの異なる形式で複数の @Html.AntiForgeryToken() を使用することは可能ですか?

よろしくお願いします。

4

1 に答える 1

0

これを置き換えます:

public ActionResult Category(Anytype CategoryName2)

public ActionResult Category(Anytype CategoryName)

これは、ルートで「CategoryName」という名前の引数を指定し、「CategoryName2」を使用しているためです。

于 2012-09-10T17:20:01.407 に答える