0

我有一个简单的 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>
4

0 回答 0