验证文本框的内容

时间:2017-04-13 19:31:44

标签: asp.net-mvc razor

@using (Html.BeginForm())
    {
    <p>
        Search By: @Html.TextBox("SearchString") 
        @Html.RadioButton("searchByOption", "Load Id")<text>Load Id</text>
        @Html.RadioButton("searchByOption", "User Id")<text>User Id</text>
        <input type="submit" value="Search" />
    </p> 
    }

我想在运行视图之前验证index.cshtml文件中文本框的内容。如果文本框为空白并按下搜索按钮,我可以轻松回复并显示消息&#34;在搜索之前在文本框中输入值&#34;?

1 个答案:

答案 0 :(得分:1)

您应该使用具有强类型视图的模型,这将使​​工作更容易,您的模型将如下所示:

public namespace YourNamespace.Models
    public class SearchModel
    {
       [Required(ErrorMessage = "Enter a value in the textbox prior to searching")]        
       public string Term
       // other properties here
    }
}

现在在View中指定模型并使用TextBoxFor,并使用ValidationMessageFor帮助程序显示Required属性中的Model属性上应用的错误消息:

@model YourNamespace.Models.SearchModel
@using (Html.BeginForm("ActionName","ControllerName",FormMethod.Post))
{
<p>
    Search By: @Html.TextBoxFor(x=> x.Term) 
    @Html.ValidationMessageFor(x=>x.Term)
    @Html.RadioButton("searchByOption", "Load Id")<text>Load Id</text>
    @Html.RadioButton("searchByOption", "User Id")<text>User Id</text>
    <input type="submit" value="Search" />
</p> 
}

并且在控制器中你需要检查模型状态,如果它无效则将模型对象发送回视图否则执行所需的业务逻辑和数据库操作:

public class YourController : Controller
{

   public ActionResult YourAction(SearchModel model)
   {

     if(ModelState.IsValid)
     {
        // perform search here
     }
     else
     {
       return View(model); // send back model 
     }

   }

}

请查看可能有帮助的following blogpost here