Вопрос

Можно ли отключить определенный параметр действия для сохранения его значения в запросах?

[HttpPost]
public ActionResult MyAction(string value1, string value2)
{
        if(value1=="hi")
             ModelState.AddModelError("value1", "Can't have hi");
        //do stuff
        if(ModelState.IsValid)
           return RedirectToAction("Finish");
        else
           return View()
}


[HttpGet]
public ActionResult MyAction()
{
        return View()
}

Представление состоит из простой формы с двумя полями ввода (значение1 и значение2). После отправки и неудачной проверки представление возвращается. Я хочу, чтобы значение текстового поля в представлении всегда было пустым.

Значение для текстового поля " value1 " сохраняется, если модель признана недействительной.

Я пытался объявить текстовое поле как <% = Html.TextBox (" value1 " ;, null)% > но значение все еще сохраняется. Я также пытался использовать [Bind (Exclude = & Quot; value1 & Quot;)], но это не работает с одной переменной.

Обновление 2:

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

Это было полезно?

Решение

Попробуйте позвонить

ModelState["value1"].Value 
  = new ValueProviderResult(null, string.Empty, CultureInfo.InvariantCulture);

перед возвратом представления из действия вашего контроллера.

Это сохраняет все ошибки, связанные с ключом " value1 ", но заменяет значение пустым значением.

Другие советы

Что вы делаете, что заставляет его сохраняться? В MVC нет ничего подобного ViewState, которое сохраняло бы значение в нескольких запросах, если только вы не пишете код или не используете поля формы для этого.

Как выглядит вид? Этот метод действия вызывается через GET или POST? Что такое & "Делать вещи"! содержится в вашем методе?

Edit: вы все еще показываете, // делаете что-то в своем примере кода. Содержит ли этот материал какие-либо ссылки на ViewData? Ваш вопрос о связывании, но я не вижу, чтобы связывание происходило. Может быть, это за пределами моего понимания.

Изменить 2: рад, что Фил видел это! В первоначальном вопросе не упоминалось ModelState.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top