gpt4 book ai didi

c# - MVC 4. ModelState.IsValid 总是返回 true

转载 作者:太空狗 更新时间:2023-10-29 21:22:54 25 4
gpt4 key购买 nike

我不明白为什么 ModelState.isValid 在所有方面都给我。我在电子邮件中设置了一些返回 true 的东西,然后我输入空字段,它也返回 true。我的问题是,当字段为空且我写电子邮件时没有任何内容时,我必须做什么才能返回 true?

我有下一个 View 文件:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div style="padding-top:5px;clear:both;"></div>
<% using (Html.BeginForm()) { %>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Email usuario</legend>

<div class="editor-field">
<%: Html.TextBoxFor(m => m.Email) %>
<%: Html.ValidationMessageFor(m => m.Email) %>
</div>

<input type="submit" value="Enviar Email" />
</fieldset>
<% } %>
<div style="padding-top:5px;clear:both;"></div>
</asp:Content>

Controller 是:

//
// GET: /Account/EmailRequest
public ActionResult EmailRequest()
{
return View();
}

[HttpPost]
public ActionResult EmailRequest(string email)
{
if (ModelState.IsValid)
{
// save to db, for instance
return RedirectToAction("AnotherAction");
}
return View();
}

我的模型类是:

    using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;

namespace PortalClient.Models
{
public class EmailRequest
{

[Required(ErrorMessage = "required")]
public string Email { get; set; }
}
}

最佳答案

将 post 操作的签名从 string email 更改为 EmailRequest model,然后检查状态。例如

[HttpPost]
public ActionResult EmailRequest(EmailRequest model)
{
if (ModelState.IsValid)
{
// save to db, for instance
return RedirectToAction("AnotherAction");
}
return View();
}

关于c# - MVC 4. ModelState.IsValid 总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17406568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com