- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Userstats 模型和一个用户模型, Controller 中的 Modelstate.isvalid 返回 false,我认为这可能与两个模型之间的关系有关,但我不确定
用户统计模型:
public class UserStats
{
Calculator CalculateStats = new Calculator();
public ActivityLevel ActivitySelected { get;set; }
[Key]
public int ID { get; set; }
public User User { get; set; }
[DisplayName("Weight")]
[Required]
public double Weight { get; set; }
[DisplayName("Chest Measurement")]
[Required]
public double ChestMeasurement { get; set; }
[DisplayName("Hip Measurement")]
[Required]
public double HipMeasurement { get; set; }
[DisplayName("Waist Measurement")]
[Required]
public double WaistMeasurement { get; set; }
[DisplayName("Bicep Measurement")]
[Required]
public double BicepMeasurment { get; set; }
[DisplayName("Height Measurement(Inches)")]
[Required]
public double Height { get; set; }
[DisplayName("Body Fat %")]
[NotMapped]
public double BodyFat { get; set; }
[NotMapped]
public double BMI
{
get { return CalculateStats.CalculateBMI(Weight,Height); }
}
[NotMapped]
public double BMR
{
//get { return CalculateStats.CalculateBMR(user.SelectedGender, Weight, Height, user.Age); }
get { return 0; }
}
[DisplayName("Stats Log Date")]
[Required]
public DateTime StatDate { get; set; }
[DisplayName("Target Weight")]
[Required]
public double TargetWeight { get; set; }
[DisplayName("Target Date")]
[Required]
public DateTime TargetDate { get; set; }
[DisplayName("Wrist Measurement(Inches)")]
[Required]
public double WristMeasurement { get; set; }
[DisplayName("Forearm Measurement(Inches)")]
[Required]
public double ForeArm { get; set; }
[DisplayName("Daily Caloric Intake")]
[NotMapped]
public double DailyIntake { get; set; }
[DisplayName("Daily Allowance")]
[NotMapped]
public double DailyCalories { get; set; }
[DisplayName("Lean Body Mass")]
[NotMapped]
public double LeanMass { get; set; }
}
用户模型:
public class User
{
[Key]
public int ID { get; set; }
public virtual ICollection<UserStats> UserStats { get; set; }
[DisplayName("First Name")]
[Required]
public string FirstName { get; set; }
[DisplayName("Last Name")]
[Required]
public string LastName { get; set; }
[DisplayName("D.O.B")]
[DataType(DataType.Date)]
public DateTime DOB { get; set; }
private int _age;
[NotMapped]
public int Age
{
get { return _age; }
set
{
DateTime today = DateTime.Today;
_age = today.Year - DOB.Year;
if (DOB > today.AddYears(-_age)) _age--;
}
}
[DisplayName("Address")]
public string Address { get; set; }
[Required]
public string Email { get; set; }
[Required]
public Gender Gender { get; set; }
[DisplayName("UserName")]
public string UserName { get; set; }
public Gender SelectedGender { get; set; }
}
}
注册男 Controller :
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult RegisterMale(User u,UserStats userstats)
{
if (ModelState.IsValid)
{
var user = db.Users.SingleOrDefault(i => i.ID == u.ID);
userstats.User = user;
db.UserStats.Add(userstats);
db.SaveChanges();
return RedirectToAction("Details", "Dashboard", new { id = userstats.ID });
}
return View(userstats);
}
查看:
<fieldset>
<legend>UserStats</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Weight)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Weight)
@Html.ValidationMessageFor(model => model.Weight)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ChestMeasurement)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ChestMeasurement)
@Html.ValidationMessageFor(model => model.ChestMeasurement)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.HipMeasurement)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.HipMeasurement)
@Html.ValidationMessageFor(model => model.HipMeasurement)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.WaistMeasurement)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.WaistMeasurement)
@Html.ValidationMessageFor(model => model.WaistMeasurement)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.BicepMeasurment)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.BicepMeasurment)
@Html.ValidationMessageFor(model => model.BicepMeasurment)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Height)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Height)
@Html.ValidationMessageFor(model => model.Height)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.StatDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.StatDate)
@Html.ValidationMessageFor(model => model.StatDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TargetWeight)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.TargetWeight)
@Html.ValidationMessageFor(model => model.TargetWeight)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TargetDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.TargetDate)
@Html.ValidationMessageFor(model => model.TargetDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.WristMeasurement)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.WristMeasurement)
@Html.ValidationMessageFor(model => model.WristMeasurement)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ForeArm)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ForeArm)
@Html.ValidationMessageFor(model => model.ForeArm)
</div>
<table>
<tr>
<td>
@Html.RadioButtonFor(model => model.ActivitySelected, Fitness_Friend.Web.Enumeration.ActivityLevel.Sedentary) Sedentary
</td>
</tr>
<tr>
<td>
@Html.RadioButtonFor(model => model.ActivitySelected, Fitness_Friend.Web.Enumeration.ActivityLevel.LightActivity) Light Activity
</td>
</tr>
<tr>
<td>
@Html.RadioButtonFor(model => model.ActivitySelected, Fitness_Friend.Web.Enumeration.ActivityLevel.Moderate) Moderate
</td>
</tr>
<tr>
<td>
@Html.RadioButtonFor(model => model.ActivitySelected, Fitness_Friend.Web.Enumeration.ActivityLevel.Active) Active
</td>
</tr>
<tr>
<td>
@Html.RadioButtonFor(model => model.ActivitySelected, Fitness_Friend.Web.Enumeration.ActivityLevel.Extra) Extra
</td>
</tr>
</table>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
最佳答案
您的模型似乎没有连接。没有相同的 id 归档。您可以将 userID
添加到 UserStats
。我认为您的 RegisterMale
方法只需要一个模型 UserStats
。改写如下即可
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult RegisterMale(UserStats model)
{
if (ModelState.IsValid)
{
var user = db.Users.SingleOrDefault(i => i.ID == model.userID );
db.UserStats.Add(userstats);
db.SaveChanges();
return RedirectToAction("Details", "Dashboard", new { id = userstats.ID });
}
return View(userstats);
}
关于c# - ModelState.isvalid 返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618220/
我的 Controller 代码如下: [HttpPost] public ActionResult Create(ExampleViewModel model) { model.User.R
我正在开发 MVC5 代码优先应用程序。 在一个模型的 Edit() View 中,我包含了 [Create] 按钮,用于从 Edit() 中向其他模型添加新值> 查看并在 Edit() 上的 Dro
我的 MVC 应用程序中有一个问题,我不确定如何解决,或者我是否以错误的方式解决了这个问题。 我有一个 Controller / View ,它在带有复选框的网格中显示项目列表,当项目发布到我的 Co
我想知道是否可以自动将错误添加到 ModelState,以便检查我的 else 条件? if (ModelState.IsValid) { //Do something } else {
我有一个带有必需属性的模型对象 public class ApiPing { [Required] public DateTime ClientTime { get; set; }
如何测试 Controller.ViewData.ModelState?我宁愿在没有任何模拟框架的情况下这样做。 最佳答案 当然,如果您对数据使用存储库模式,则不必使用 Mock。 一些例子: htt
我正在使用 ASP.NET-MVC Core 2.1,我的代码中有这个 ViewModel 类 public class HomeViewModel { public
我有一个非常简单的 MVC 2 表单。它有两个下拉菜单,用户和角色。无论我选择什么,员工下拉列表都会通过验证,而角色下拉列表不会通过验证。尽管我计划实现一个,但没有默认的“空”选项,这就是为什么我需要
例如,有一个 Web Api 操作方法: public HttpMessageResponse Post(UserDto userDto) { if (!this.ModelState.IsV
如果我有以下模型: public class Model { public int ModelID { get; set; } public string Title { get; s
我的 DropDownLists 有一些问题,因为当我发布信息并且我的模型无效时,它返回“空”到页面触发错误,就像 this question . 我已经使用那里提出的解决方案,它解决了我的问题。无论
我的 DropDownLists 有一些问题,因为当我发布信息并且我的模型无效时,它返回“空”到页面触发错误,就像 this question . 我已经使用那里提出的解决方案,它解决了我的问题。无论
我想从 html 页面上的 dropdownList 获取参数并将其发送到我的 Controller ,创建新的模型对象,并将其插入数据库。 这是我的 Controller (创建 My_Model
我几乎总是想在回发时检查 ModelSate.IsValid 是否被调用。而且必须在每次回发开始时进行检查违反了 DRY 原则,有没有办法让它自动检查? 例子: [HttpPost("Register
我的模型类如下: public class PostInputViewModel { [Required] [MinLength(1)] [Ma
如何在 WEB Api .net 框架中将模型状态键设置为驼峰式大小写。 我使用 JsonProperty 特性将属性名称设置为驼峰式大小写。现在我希望 modelstate 与 json(驼峰式)相
所以,我有一个我很好奇的问题。我有一个 UserAccountViewModel,我正在重复使用它来创建帐户 View 和编辑帐户 View 。这样我就可以为我的代码使用一个 View 和一个 Vie
我正在编写一个 MVC 应用程序,其中包含一个对其进行验证的表单。 当我查询错误时,像这样: foreach (ModelState modelState in ViewData.ModelState
使用 MVC 时,当属性级别出现错误时,我们可以将错误添加到 ModelState但同样的错误也被添加到摘要中。我们如何避免显示它两次。 我只想在消息摘要中显示公共(public)错误,而在属性级别显
我有以下代码: public class EventController : ApiController { public IHttpActionResult Post(List Events
我是一名优秀的程序员,十分优秀!