[英]How can i fix ModelState.IsValid to work as attended?
嘿,我不确定这里发生了什么,我以前做过,但效果很好。 但是现在我的 ModelState.IsValid 无法正常工作。 在我的 model 视图中,我将其设置为如果文本框留空,它将不会执行 if 语句中的代码,但当它为空时返回 true。 此外,当我出于某种原因在 model CreaditCalculator 中输入它们时,似乎我的字段或未被设置。
Controller: CreditCardCalculatorController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using reviewCreditCardPaymentCalculator.Models;
namespace reviewCreditCardPaymentCalculator.Controllers
{
public class CreditCardCalculatorController : Controller
{
// GET: CreditCardCalculator
[HttpPost]
public ActionResult Index(CreditCalculator credit)
{
if (ModelState.IsValid)
{
decimal financeCharge = 0.0m;
decimal newBalance = 0.0m;
decimal minPayment = 0.0m;
if (credit.OldBalance <= 20)
{
financeCharge = credit.OldBalance * 0.015m;
newBalance = credit.OldBalance * 1.015m + credit.Charge - credit.Credit;
minPayment = newBalance;
}
else
{
financeCharge = credit.OldBalance * 0.015m;
newBalance = credit.OldBalance * 1.015m + credit.Charge - credit.Credit;
minPayment = (newBalance - 20) * 1.10m;
}
ViewBag.Message = $"Finance Charge: {string.Format("{0:C}", financeCharge)}\r\n" +
$"New Balance: {string.Format("{0:C}", newBalance)}\r\n" +
$"Min Payment: { string.Format("{0:C}", minPayment)}";
}
return View();
}
[HttpGet]
public ActionResult Index()
{
return View();
}
}
}
Model: CreditCalculator
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using reviewCreditCardPaymentCalculator.Controllers;
namespace reviewCreditCardPaymentCalculator.Models
{
public class CreditCalculator
{
[Required(ErrorMessage = "Please enter your old balance")]
public int OldBalance { get; set; }
[Required(ErrorMessage = "Please enter your new charge amount")]
public int Charge { get; set; }
[Required(ErrorMessage = "Please enter your credit amount")]
public int Credit { get; set; }
}
}
View
@model reviewCreditCardPaymentCalculator.Models.CreditCalculator
@{
ViewBag.Title = "Credit Card Calculator";
}
<h2>Credit Card Payment Calculator</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary();
<p><label>Old Balance: </label> @Html.TextBoxFor(m => m.OldBalance)</p>
<p><label>Charges: </label> @Html.TextBoxFor(m => m.Charge)</p>
<p><label>Credit: </label> @Html.TextBoxFor(m => m.Credit)</p>
<p><input type="submit" value="Calculate" /></p>
@ViewBag.Message
}
使用@using (Html.BeginForm("Index", "CreditCardCalculatorController", FormMethod.Post))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.