如何显示JSON返回的ModelState错误?
我想做这样的事情:
if (!ValidateLogOn(Name, currentPassword))
{
ModelState.AddModelError("_FORM", "Username or password is incorrect.");
//Return a json object to the javascript
return Json(new { ModelState });
}
Run Code Online (Sandbox Code Playgroud)
在视图中我的代码必须是什么才能读取ModelState错误并显示它们?
我在视图中读取JSON值的实际代码如下:
function createCategoryComplete(e) {
var obj = e.get_object();
alert(obj.Values);
}
Run Code Online (Sandbox Code Playgroud) 如何返回有错误的所有键的列表/数组?
我试图在下面做,但它说我出于某种原因不能有这种表达方式.
ModelState.ToList(item => item.Value.Errors.Count > 0)
Run Code Online (Sandbox Code Playgroud) 在 ASP.NET MVC 中,当我们使用一些数据调用 post 操作时,我们会检查 ModelState,如果出现一些验证错误,它将是错误的。对于一个大的输入用户信息表单,展开每个值并查看计数以查看哪个键(附加示例图像中的 9 个)具有验证错误是很烦人的。想知道是否有人知道一种简单的方法来找出导致验证错误的元素。

我已经不停地工作了几天,但并不能完全按我期望的那样工作。我看了很多例子,但我一定误会了。
我所拥有的是一个Bootstrap Modal,其中包含了部分视图。我想做的是进行验证(希望是客户端),模态中的@ValidationSummary中会显示任何错误。我遇到的最大问题是,发生错误时,基本上没有在原始模态中显示它,而是将模态局部视图加载到了新页面中。验证摘要已正确填充,但没有任何样式,而且此时还没有出现在模式中。
*注意:我目前不使用AJAX加载模态。我最终会得到的,但是我对AJAX还不满意,我想先使其工作,然后我可以回来使用AJAX进行重构。
_Layout.cshtml-我找到了一个示例,该示例说我在加载Modal时需要加载JS.unobtrusive。我以为我做的正确,但是我可能在那里缺少一些东西。
<div id="modal-container" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
</div>
</div>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
<script type="text/javascript">
//**** Bootstrap Modal - used with Partial Views ***********************
$(function () {
// Initalize modal dialog
// attach modal-container bootstrap attributes to links with .modal-link class.
// when a link is clicked with these attributes, bootstrap will display the href content in a modal dialog.
$('body').on('click', '.modal-link', function (e) {
e.preventDefault();
$(this).attr('data-target', '#modal-container');
$(this).attr('data-toggle', 'modal');
//load …Run Code Online (Sandbox Code Playgroud) 如何ModelState以与ASP.NET Core相同的格式转换为JSON?
我知道我可以做BadRequest(ModelState),并且它将JSON返回给客户端。如何转换ModelState为JSON?更重要的是,我该如何使用它所使用的内容?
我的目标是将ModelStateas JSON记录在我们的日志“文件”中。
即 var blah = ModelState.ToJson()
asp.net-mvc ×4
modelstate ×2
asp.net-core ×1
c# ×1
c#-4.0 ×1
jquery ×1
json ×1
logging ×1
validation ×1