#ajax #asp.net-mvc #partial-views
#ajax #asp.net-mvc #частичные представления
Вопрос:
Я пытаюсь использовать Ajax.BeginForm для отправки сообщения обратно на сервер, и мне нужно дать имя форме, т. Е. Использовать параметр htmlAttributes . Для этого я использую следующую подпись:
@using (Ajax.BeginForm("SendEmail", "Contacts", null, new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "sendMessageArea" }, new { Name = "sendEmail" }))
Этот код не работает, он обновляет всю страницу, и контроллер ожидает объект в качестве параметра:
public ActionResult SendEmail(Контакты контакты)
Вот представление:
<div class="row">
<div class="large-12 columns" >
@using (Ajax.BeginForm("SendEmail", "Contacts", null, new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "sendMessageArea" }, new { Name = "sendEmail" }))
{
<fieldset class="form-group">
<legend>Leave a message</legend>
<div class="panel">
<div class="row">
<div class="large-offset-2 large-8 columns">
<div class="row">
<div class="large-2 columns">
<div class="form-group">
@Html.LabelFor(model => model.Name, new { @class = "control-label" })
</div>
</div>
<div class="large-8 columns">
@Html.TextBox("Name", Model.Name, new { placeholder = "Your name..." })
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="large-2 columns">
</div>
</div>
<div class="row">
<div class="large-2 columns">
<div class="form-group">
@Html.LabelFor(model => model.EMail, new { @class = "control-label" })
</div>
</div>
<div class="large-8 columns">
<div class="form-group">
@Html.TextBox("EMail", Model.EMail, new { placeholder = "Your email..." })
@Html.ValidationMessageFor(model => model.EMail)
</div>
</div>
<div class="large-2 columns">
</div>
</div>
<div class="row">
<div class="large-2 columns">
<div class="form-group">
@Html.LabelFor(model => model.Message, new { @class = "control-label" })
</div>
</div>
<div class="large-8 columns">
@Html.TextArea("Message", Model.Message, new { placeholder = "Your message here...", @class = "comment-control", id = "message" })
@Html.ValidationMessageFor(model => model.Message)
</div>
<div class="large-2 columns">
</div>
</div>
<div class="row">
<div class="large-offset-8 large-3 columns">
<input type='submit' style='position:absolute;top:0;left:-9999px;width:1px;height:1px' />
<a class='submit-button' href="javascript:sendEmail.submit()">
<span class='submit-button-inner'>Submit</span>
</a>
</div>
</div>
</div>
<div class="large-2 columns">
</div>
</div>
</div>
</fieldset>
}
</div>
и частичное представление:
<span class="success label">@Resources.Contacts.Index.SuccessSendMessage</span>
Я думаю, что проблема должна быть связана с параметром routeValues, потому что, если я использую простой пример без htmlAttributes и routeValues, он работает хорошо.
Есть предположения?
Комментарии:
1. Можете ли вы опубликовать свой полный код представления?
2. Я обновляю сообщение кодом представления