几天来一直在尝试解决此问题,但无法使其正常工作!
我有一个单选按钮列表,它确定表单的输出 - 其中一个单选按钮是下载 X 数量的文件。此单选按钮有一个文本框供用户输入他们希望下载的数量 (X)。
我只需要这个文本框来验证是否选择了与其对应的单选按钮 - 这是我到目前为止所拥有的,但无法让它工作。任何帮助都会得到帮助。
模型
public class myClass
{
[Required(ErrorMessage = "Please select the type of output you wish to generate")]
public int providerType { set; get; }
public int? numOutput { set; get; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (providerType == 2 && numOutput == null)
yield return new ValidationResult("Description must be supplied.");
}
}
控制器
[AcceptVerbs(HttpVerbs.Post)]
[HttpPost, ValidateInput(false)]
public ActionResult Spin(myClass theData)
{
int? ProviderType = Convert.ToInt16(Request.Form["providerType"]);
if (ModelState.IsValid)
{
//other random processing
}
}
看法
<ul>
<li>
<%=Html.RadioButton("ProviderType","1")%><label>Output A Single Article (With Visible HTML Tags)</label>
</li>
<li>
<%=Html.RadioButton("ProviderType","4")%><label>Output A Single Article (With HTML Pre Rendered - Not Recommended For Articles With Videos)</label>
</li>
<li>
<%=Html.RadioButton("ProviderType", "3")%><label>Output For Mass Submission</label>
</li>
<li>
<%=Html.RadioButton("ProviderType", "2")%><label>Download Several Copies Of Article (With Visible HTML Tags)</label>
How Many Artilces (Max 20)
<%= Html.TextBoxFor(Model => Model.numOutput)%>
<%= Html.ValidationMessageFor(Model => Model.numOutput)%>
我对 MVC 还很陌生,所以我可能在这里做了一些愚蠢的事情——任何帮助都非常受欢迎。我得到的错误是,当我选择单选按钮并且没有在文本框中输入任何内容时“输入字符串的格式不正确”。所以很明显验证没有触发 - 不能完全弄清楚为什么。