首页 新闻 会员 周边

.net core 2.1 参数验证

0
悬赏园豆:10 [已解决问题] 解决于 2018-06-19 08:35

action:

[HttpGet]
public IActionResult ConfigEdit(int id)
{
ConfigModel model = configBLL.GetModel(id);
return View(model);
}

View的内容也很简单,都是框架自动生成的:

@model Model.ConfigModel
@{
ViewData["Title"] = "编辑配置";
Layout = "~/Areas/manager/Views/Shared/_Layout.cshtml";
}
<h2>编辑配置</h2>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="ConfigEdit">
<div asp-validation-summary="ModelOnly " class="text-danger"></div>
<div class="form-group">
<label asp-for="id" class="control-label"></label>
<input asp-for="id" class="form-control" />
<span asp-validation-for="id" class="text-danger"></span>
</div>
<div class="form-group hidden">
<label asp-for="type" class="control-label"></label>
<input asp-for="type" class="form-control" />
<span asp-validation-for="type" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="title" class="control-label"></label>
<input asp-for="title" class="form-control" />
<span asp-validation-for="title" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="description" class="control-label"></label>
<textarea asp-for="description" rows="5" class="form-control"></textarea>
<span asp-validation-for="description" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="name" class="control-label"></label>
<input asp-for="name" class="form-control" />
<span asp-validation-for="name" class="text-danger"></span>
</div>
<div class="form-group hidden">
<label asp-for="valuetype" class="control-label"></label>
<input asp-for="valuetype" class="form-control" />
<span asp-validation-for="valuetype" class="text-danger"></span>
</div>

<div class="form-group">

<input type="submit" value="Save" class="btn btn-default" />
</div>
</form>
</div>
</div>

约定id的参数是需要int类型。

当id传入数字时,正常,能正确获取数据。

但当id传入非数字时,报错,

生成的内容是这样:

<div class="form-group">
                <label class="control-label" for="id">id</label>
                <input class="form-control input-validation-error" type="number" data-val="true" data-val-required="The id field is required." id="id" name="id" value="sfsf" />
                <span class="text-danger field-validation-error" data-valmsg-for="id" data-valmsg-replace="true">The value &#x27;sfsf&#x27; is not valid.</span>
            </div>

模型:

        /// <summary>
        /// id
        /// </summary>
        [Key]
        [Display(Name ="id")]
        public int id { get; set; }

 

错误提示:The value 'sfsf' is not valid. 这句在哪里修改?在模型中试了都不对啊。

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2018-06-16 21:51

建议提供一下相关代码

dudu 5年前

是让这里显示中文还是需要自己修改文字?

dudu 5年前

@dudu: 对,想自己修改提示文字。

DZCMS 5年前
< >
分享
最佳答案
0

你这个是类型错误,int类型明显是不能用字符串的。

MVC内部直接就帮您提示了,所以你找不到修改文字的位置。

如果你要自定义验证(Validation),搜索 ASP.NET MVC 验证可以找到这么一篇

ASP.NET MVC下的四种验证编程方式

收获园豆:10
爱编程的大叔 | 高人七级 |园豆:30839 | 2018-06-18 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册