gpt4 book ai didi

c# - ValidationSummary 不显示错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:32:54 25 4
gpt4 key购买 nike

我有一个使用信用卡收费的页面。当我尝试对卡收费时,如果收到错误响应,我想重新显示该页面。

这是我的 Controller 方法:

[HttpPost]
public ActionResult Charge(CreditCardViewModel viewModel)
{
if (ModelState.IsValid)
{
var request = new AuthorizationRequest(viewModel.CreditCardNumber,
viewModel.ExpirationDate.Value.ToString("MMyy"),
viewModel.Amount.Value, "");
var gate = new Gateway("XXXXXXXXX", "XXXXXXXXX", true);
var response = gate.Send(request);

if (!response.Approved)
{
ModelState.AddModelError("", response.Message);
return View(viewModel);
}
else
{
viewModel.ResponseMessage = response.Message;
return View("Results", viewModel);
}
}
return View(viewModel); // validation error, so redisplay same view
}

我的观点:

<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm("Charge", "CreditCard", FormMethod.Post)) { %>

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

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

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

<div class="buttons">
<input type="submit" value="Charge Amount" />
</div>

<% Html.ValidationSummary(false); %>

<% } %>

代码工作正常——如果我收到错误作为响应, View 将重新加载。唯一的问题是验证摘要没有显示任何错误。

一件奇怪的事情是,如果我将 AddModelError 行更改为:

ModelState.AddModelError("CreditCardNumber", response.Message);

它将在 CreditCardNumber 文本框旁边显示错误。但我想在表格下方的摘要中显示错误,因为有时错误可能与信用卡无关。

最佳答案

试试这个(注意冒号),因为它返回 MvcHtmlstring:

<%: Html.ValidationSummary(false) %>

可以给空字符串,会被当成not field错误。

关于c# - ValidationSummary 不显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540709/

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