Я не могу понять, как это сделать очень просто: Моя страница содержит набор текстовых полей, которые пользователь может заполнить, чтобы добавить элемент в список. Затем элемент отображается в выпадающем списке.Как очистить текстовые поля, определенные с помощью HTML-помощников MVC
В этот момент я хочу, чтобы текстовые поля «добавить» были очищены. Я думаю, это поведение, ожидаемое большинством пользователей. Элемент добавлен; теперь текстовые поля должны быть пустыми, готовыми для ввода следующего элемента.
Однако я не могу очистить их, когда я использую Html-помощники, например, Html.Textbox (...). Мне нравятся эти элементы управления из-за того, как они «запоминают» входные данные в случае ошибки ввода. Однако, в отличие от элементов управления веб-формами, вы не можете устанавливать их программно. Они продолжают сохранять значения, пока пользователь не добавит что-то еще.
Каким образом это поведение? Я думал об их очистке в javascript, но я не хочу этого делать, если есть какие-то ошибки.
ОБНОВЛЕНИЕ некоторые из кода; Один из моих текстовых полей в представлении:
<h6 style="margin-top: 0px">Add custom email template:</h6>
<div style="margin-top: 10px">
<div class="label">Name:</div>
<%= Html.TextBox("addName", "", new { @class="formtext", style="width: 400px" }) %>
<div class="alerttext"><%= Html.ValidationMessage("addName") %></div>
</div>
Класс Я использую для модели связывания:
public class ManageEmailTemplatesSubmittedData
{
[RegularExpression(RegExpressions.templateNameRestrict, ErrorMessage="Names should begin with a character and consist of only characters and numbers")]
public string addName { get; set; }
[RegularExpression(RegExpressions.freeTextRestrict, ErrorMessage = "Invalid entry; please omit unusual characters")]
public string addDescription { get; set; }
[RegularExpression(RegExpressions.freeTextRestrict, ErrorMessage = "Invalid entry; please omit unusual characters")]
public string addSubject { get; set; }
[RegularExpression(RegExpressions.freeTextRestrict, ErrorMessage = "Invalid entry; please omit unusual characters")]
public string addTemplate { get; set; }
public string templates { get; set; }
[RegularExpression(RegExpressions.templateNameRestrict, ErrorMessage = "Names should begin with a character and consist of only characters and numbers")]
public string editName { get; set; }
[RegularExpression(RegExpressions.freeTextRestrict, ErrorMessage="Invalid entry; please omit unusual characters")]
public string editDescription { get; set; }
[RegularExpression(RegExpressions.freeTextRestrict, ErrorMessage = "Invalid entry; please omit unusual characters")]
public string editSubject { get; set; }
[RegularExpression(RegExpressions.freeTextRestrict, ErrorMessage = "Invalid entry; please omit unusual characters")]
public string editTemplate { get; set; }
}
Мои действия:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CustomEmails(SubmitButtons buttons, ManageEmailTemplatesSubmittedData data)
{
bool saved = false;
string selectedTemplate = data.templates;
if (ModelState.IsValid)
{
ButtonStyles buttonStyles = ButtonStylesCreator.GetSelectListButtonStyles(rc.persistedData.loggedInUser.userType);
Notification notification = new Notification(rc);
if (buttons.addTemplate == buttonStyles.addEmailTemplateButtonValue)
{
// add an email template
notification.SaveCustomTemplate(data.addName, data.addName, data.addTemplate, data.addSubject, data.addDescription);
saved = true;
}
else if (buttons.saveTemplate == buttonStyles.saveTemplateValue)
{
// update an email template
notification.SaveCustomTemplate(data.templates, data.editName, data.editTemplate, data.editSubject, data.editDescription);
selectedTemplate = "";
saved = true;
}
}
ConfigureEmailsModelBuilder builder = new ConfigureEmailsModelBuilder(rc, rc.persistedData.loggedInUser.userID, selectedTemplate, true, saved);
return View(builder.Build());
}
ConfigureEmailsModelBuilder строит модель представления, которая включает в себя SelectList, который является выпадающим списком элементов, которые были добавлены. (Вид строго типизирован для типа, сгенерированного builder.Build).
Что такое параметр действия контроллера? Это типичный метод? Или используя FormVariables? – Shlomo
Я использую класс, свойства которого сопоставляются с именами текстовых полей - поэтому, я думаю, вы могли бы сказать, что это типизированный метод (это то, что вы имеете в виду?) – Cynthia
Однако у меня была такая же проблема, даже если я использую FormCollection - это, похоже, не имеет никакого значения. – Cynthia