Как предотвратить автоматическое заполнение объявленных значений в форме asp.net mvc ajax - PullRequest
0 голосов
/ 23 апреля 2009

Внутри частичного представления asp.net mvc у меня есть форма Ajax, которая отправляет значение и заменяет содержимое его родительского контейнера другим экземпляром формы.

Index.aspx view:

<div id="tags">
    <% Html.RenderPartial("Tags", Model); %>
</div>

Tags.ascx частичное представление:

<% using(Ajax.BeginForm("tag", new AjaxOptions { UpdateTargetId = "tags" }))
    { %>
        Add tag: <%= Html.TextBox("tagName")%>
        <input type="submit" value="Add" />
<%  } %>

Контроллер:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Tag(string tagName) {
    // do stuff
    return PartialView("Tags", ...);
}

Проблема в том, что когда возвращается новый экземпляр формы, опубликованное значение уже сохраняется в поле ввода. То есть все, что я написал как tagName, останется в текстовом поле. Firebug показывает, что значение жестко закодировано в ответе.

Есть ли способ очистить значение входного текстового поля при возврате частичного представления?

Я пробовал:

<%= Html.TextBox("tagName", string.Empty)%>

и

<%= Html.TextBox("tagName", string.Empty, new { value = "" })%>`

ни один из которых ничего не делает.

EDIT:

Я понимаю, что есть решения js, которые мне, возможно, придется использовать, но мне было интересно, есть ли какие-нибудь способы сделать это в бэкэнде?

Ответы [ 2 ]

1 голос
/ 23 апреля 2009

Я не уверен, что это решение "достаточно хорошо" для вас, но не могли бы вы просто очистить форму в функции обратного вызова JS от вашего вызова ajax? Если вы используете jQuery на своем сайте, функция обратного вызова может выглядеть примерно так:

function emptyFormOnReturn() {
    $(':input').val();
}

Я не совсем уверен, так ли это, но в случае, если вышеуказанный код также удаляет текст на кнопке отправки, измените селектор на ':input[type!=submit]'.

0 голосов
/ 23 апреля 2009

да, вы должны использовать jquery для установки значений в ответе если вы измените свой код, чтобы использовать jquery для операций ajax, вы можете вызвать функцию settingvalues ​​при успешном обратном вызове ... пример:

http://docs.jquery.com/Ajax/jQuery.ajax#options

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...