这是我的第一篇文章,我刚刚用mvc3弄湿了脚。我在一个视图中有一个包含3个模型的表单,我正在尝试提交表单但我提交的3个字段一旦提交就归零在数据库中;这是表格。如何创建模型:主要是国家,这是我提交的问题,因为它出现了null
public class countries
{
public string china { get; set; }
public string japan { get; set; }
public string thailand { get; set; }
}
// I know put multiple models inside allmyplanets
public class allmyplanets
{
public IEnumerable<politcal> rankworld { get; set; }
public countries asia { get; set; }
public president names { get; set; }
}
这是视图的外观,表单仅适用于我试图提交的国家/地区
John.Models.allmyplanets
@using (Ajax.BeginForm("planet", "earth", null, new AjaxOptions
{
UpdateTargetId = "submitted",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST"
}))
{
@Html.TextAreaFor(x => x.asia.china)
@Html.TextAreaFor(x => x.asia.japan)
@Html.TextAreaFor(x => x.asia.thailand)
<br />
<input type="submit" name="myform" id="submitform" value="Submit Form" />
}
现在提交3个字段的简单表单我尝试捕获值,它确实在数据库中形成一个新行,但是所有3个字段都是null,这就是我试图捕获它...
public PartialViewResult planet(countries submit,string asia_china, string asia_japan, string asia_thailand)
{
submit.china = asia_china;
submit.japan = asia_japan;
submit.thailand = asia_thailand;
db.countries.Add(submit);
db.SaveChanges();
}
导致一切都为null的代码有什么问题?因为razor命名约定将所有具有多个倍数的ID转换为破折号以分隔,例如id =“asia_china”,所以我把它放在破折号下。怎么解决这个问题?
答案 0 :(得分:2)
[HttpPost]
public PartialViewResult planet(allmyplanets allplanet)
{
countries country=new countries();
allplanet.asia=country;
//save the data
}