MVC 3 - Публикация частичного представления на выбранный контроллер - PullRequest
0 голосов
/ 01 декабря 2010

Я пытаюсь изучить MVC 3 и Razor, происходящие из фона ASP.NET.

Я хочу получить простое частичное представление (в общей папке) для публикации на конкретном контроллере, чтобычто я могу использовать его в другом месте, например, для статей, блогов и т. д. Я попытался использовать варианты следующего:

@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 Ответ

1 голос
/ 07 декабря 2010

Я нашел ответ.

@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

...