0

ControllerではPost、URLは次のようになります。

     http://127.0.0.1/post/5006/some-text-for-seo-friendly
     {contoller}/{id}/{seo}

     public ViewResult Index(){
     .....
     }

Ajax.BeginFormインデックスビューで使用しAddComment、同じコントローラーのアクションにマッピングしました。

  @using (Ajax.BeginForm("AddComment", "Post", new AjaxOptions()
                   {
                      HttpMethod = "GET",
                      InsertionMode = InsertionMode.InsertAfter,
                      UpdateTargetId = "comment-container"
           }))
            {
                <textarea cols="2" rows="2" name="comment" id="comment"></textarea>
                <input type="submit" value="Add Comment" />
            }

とコントローラーで

    public PartialViewResult AddComment(string comment){
              // how can I get 5006 {id} here
    }

私の質問は、どうすれば行動{id} [5006]を起こすことができるかということです。AddComment

注:難しい方法は、フォーム配列を使用Request.UrlReferrerして分割し、選択することです。'/'

4

1 に答える 1

2

パラメータをとるこのオーバーロードidを使用して、BeginFormメソッドにを提供する必要があります。routeValues

@using ( Ajax.BeginForm( "AddComment", "Post",
  new { id = 5006 },
  new AjaxOptions
  {
    ...

次に、アクションメソッドのパラメータとしてIDを取得できるはずです。

public PartialViewResult AddComment( int id, string comment )
{
  ...

MVCはAddComment、入力されたID値を使用して呼び出します。

于 2012-05-12T12:26:29.210 に答える