MVC 3 - 将部分视图发布到所选控制器

时间:2010-12-01 19:43:15

标签: asp.net-mvc razor partial-views

我正在尝试从ASP.NET背景学习MVC 3和Razor。

我想要一个简单的局部视图(在共享文件夹中)发布到特定的控制器,以便我可以在其他地方重复使用它,例如文章,博客等。我尝试使用以下变体。

@using (Html.BeginForm("Create", "Comment", FormMethod.Post,  new { }))
{
    <div>
        <fieldset>
            <legend>Comments</legend>

            <div >
                @Html.LabelFor(m => m.Name)
                @Html.TextBoxFor(m => m.Name)              
            </div>

            <div >
                @Html.LabelFor(m => m.Email)
                @Html.TextBoxFor(m => m.Email)              
            </div>

            <div >
                @Html.LabelFor(m => m.Body)
                @Html.TextBoxFor(m => m.Body)              
            </div>

            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    </div>
}

这不会发布到评论控制器动作创建如下所示。

[HttpPost]
public ActionResult Create()
{
    // Save comment code here

    return View();
}

有什么简单的方法可以做到这一点,而不必绑定到特定的路线?

1 个答案:

答案 0 :(得分:1)

我找到了答案。

@using (Ajax.BeginForm("Create", "Comment",  new AjaxOptions() {
        UpdateTargetId = "MainContainer"    })) 
{ 
     <div>
        <fieldset>
            <legend>Comments</legend>

            <div >
                @Html.LabelFor(m => m.Name)
                @Html.TextBoxFor(m => m.Name)              
            </div>

            <div >
                @Html.LabelFor(m => m.Email)
                @Html.TextBoxFor(m => m.Email)              
            </div>

            <div >
                @Html.LabelFor(m => m.Body)
                @Html.TextBoxFor(m => m.Body)              
            </div>

            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    </div>
}

这使用ajax回发并且不会更改URL。或者你可以使用JQuery http://jvance.com/blog/2010/02/20/MakingAnAjaxFormWithJQueryInASPdotNETMVC.xhtml

这样做