2014-02-19 4 views
0

У меня есть проект MVC внутри этого Я создаю этот пост методу (Create) внутри CommentController. Я использую httppost. Код выглядит следующим образом: Вид, который содержит форму.Данные формы в форме MVC с использованием Ajax и GET

@model myproject.Models.Comment 

@using (Ajax.BeginForm("Create", 
new AjaxOptions { UpdateTargetId = "CommentContainer" })) 
{ 
    @Html.ValidationSummary(true) 

    @Html.LabelFor(model => model.UserComment) 
     @Html.EditorFor(model => model.UserComment) 
     @Html.ValidationMessageFor(model => model.UserComment) 
    <br /> 

    <input type="submit" value="Create comment" /> 
} 

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.js"></script> 
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js"></script> 

CommentController содержат метод создания

[HttpPost] 
public PartialViewResult Create(Comment comment) 
{ 
    return PartialView("_RandomComment", comment); 
} 

Теперь все это работает нормально, а то, что я хочу, чтобы сделать все с помощью GET не POST его. Я все еще хочу использовать Ajax.BeginForm и 2 библиотеки javascript. Я не хочу писать свой собственный код jQuery. Как отправить выше данные формы в метод GET внутри моего CommentController.

+1

Почему вы хотите получать данные POST с помощью GET? – Maess

+0

во избежание предупреждения после обратной связи, когда пользователь нажимает кнопку «Назад» в браузере. – Ovis

ответ

0

Я не рекомендую отправлять данные формы, используя GET. Однако, если вы действительно хотите это сделать, просто укажите "Get" в собственности AjaxOptions.HttpMethod.

@using (Ajax.BeginForm("Create", new AjaxOptions { HttpMethod = "Get", UpdateTargetId = "CommentContainer" })) 
{ 
    ... your form elements ... 
} 

изменить Также ваш метод действия от принятия [HttpPost] к [HttpGet].

+0

Hi HTX9! Спасибо за ваше предложение, однако это не сработает. Его как событие click никогда не срабатывает. – Ovis

+0

Подождите! Я попробовал еще несколько и явно включил имя контроллера (CommentController), который не был включен в версию POST и знал, что он работает! Благодаря! Для читателей; Единственное, что изменилось в приведенном выше коде, следующее: 1) @using (Ajax.BeginForm («Создать», «Комментарий», новых AjaxOptions {HttpMethod = «Получить», а внутри CommentController я просто установил [HttpGet] выше Создать метод. – Ovis

Смежные вопросы