이 간단한 작업을 수행하는 방법을 알 수 없습니다. 내 페이지는 사용자가 목록에 항목을 추가하기 위해 작성할 수있는 일련의 텍스트 상자를 포함합니다. 그런 다음 항목이 드롭 다운 목록에 나타납니다.MVC HTML 도우미로 정의 된 텍스트 상자를 지우는 방법
그 시점에서 "추가"텍스트 상자를 지우고 싶습니다. 이것은 대부분의 사용자가 예상하는 동작입니다. 항목이 추가되었습니다. 이제 텍스트 상자가 비어 있어야 다음 항목을 입력 할 수 있습니다.
그러나 Html.Textbox (...)와 같이 Html 헬퍼를 사용하고있을 때이를 삭제할 수 없습니다. 나는 입력 오류의 경우 입력을 "기억"하는 방식 때문에 이러한 컨트롤을 좋아합니다. 그러나 webforms 컨트롤과 달리 프로그래밍 방식으로 컨트롤을 설정할 수는 없습니다. 그들은 사용자가 다른 것을 입력 할 때까지 계속해서 값을 유지합니다.
이 문제를 해결할 방법이 있습니까? 나는 자바 스크립트에서 그들을 지우고 생각했지만, 오류가 있다면 나는 그것을하고 싶지 않아.
일부 코드가 업데이트되었습니다. 뷰 내 텍스트 상자의 하나 :
<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