我有一个简单的mvc web应用程序,即使用指定的搜索参数(名为RA编号)在数据库中搜索事务,现在我决定在我的应用程序上添加jquery块ui然后我意识到即使在输入空字符串(“”文本框中的“单个或双重空格键”。
我在RA视图模型中有数据注释,然后在我的视图模型属性上添加了AllowEmptryStrings = false属性,请参阅下面的代码
public class SearchByRAViewModel
{
[Required(ErrorMessage = "Please enter an RA number",AllowEmptyStrings = false)]
public string RANumber { get; set; }
}
这是我的控制器代码中的动作方法
public ActionResult SearchTollTransactions(SearchByRAViewModel raViewModel)
{
List<TollScrapingTransactionScreen> tollScrapingList = new List<TollScrapingTransactionScreen>();
if (ModelState.IsValid)
{
tollScrapingList = GetTransactionByRA(raViewModel.RANumber);
ViewBag.RANumber = raViewModel.RANumber;
return View(tollScrapingList);
}
else
{
return View("Index");
}
}
我现在唯一的问题是,如果搜索文本框中有空字符串,搜索页面(索引)上似乎会显示额外的验证消息,请参见屏幕截图
这是我的块ui部分,以防有人想知道它在哪里
$('#btnSearch').click(function () {
// there should be at least a value for ra before firing the blockui
var raValue = $('#raNumber').val();
if (!raValue || raValue.trim() === '') {
return;
}
else {
$.blockUI();
}
});
这是我观点的一部分,它在正常的@using(Html.BegingForm)
中<div class="form-horizontal">
<div class="form-group">
<div class="panel panel-default">
<div class="panel-heading">Search by RA number</div>
<div class="panel-body">
<div class="col-sm-12">
<table class="table form-table">
<tr>
<th class="col-sm-2">@Html.DisplayNameFor(model => model.RANumber)</th>
<td class="col-sm-10">
@Html.TextBoxFor(model => model.RANumber, new { @class = "form-control", @tabindex = 1, @id = "raNumber" })
@Html.ValidationMessageFor(model => model.RANumber)
</td>
</tr>
</table>
</div>
<div class="btn-toolbar col-sm-12">
<input type="submit" value="Search Transaction" class="btn pull-right" tabindex="2" id="btnSearch" />
</div>
</div>
</div>
</div>
</div>