0

PostController 中,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

您需要使用带有参数的此重载idBeginForm方法提供 :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 回答