我知道有很多類似的帖子,但我似乎無法找到答案,經過大量調查。在回發之後,儘管將文本放入TextBoxFor字段並單擊submit,但CompanySetting.NewSetting.SettingType和CompanySetting.NewSetting.SettingValue爲null。 這是爲什麼?MVC模型中的對象屬性爲空
這裏是視圖:
@model Project.Models.CompanySettingView
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<form>
<div class="form-group">
<label>Setting Type</label>
@Html.TextBoxFor(m => m.NewSetting.SettingType, new { @class = "form-control", @id = "SettingType" })
<br />
<label>Setting Value</label>
@Html.TextBoxFor(m => m.NewSetting.SettingValue, new { @class = "form-control", @id = "SettingValue" })
<br />
</div>
<div style="float: right;">
<button type="button" style="width:100px;" onclick="ClearFields()" class="btn btn-default">Clear</button>
<button type="submit" style="width:100px;" class="btn btn-primary">Submit</button>
</div>
</form>
}
接收控制器:
[HttpPost]
public ActionResult AddCompanySetting(CompanySettingView model)
{
...
}
CompanySettingView類別:
public class CompanySettingView
{
public List<CompanySetting> Settings = new List<CompanySetting>();
public CompanySetting NewSetting = new CompanySetting();
}
CompanySetting類別:
public class CompanySetting
{
public int CompanySettingId { get; set; }
public int CompanyId { get; set; }
public string SettingType { get; set; }
public string SettingValue { get; set; }
}
最有可能嵌套對象引用做(' NewSetting.SettingType')。你可能應該多一些你的viewmodel。 – Hintham
它與你的對象初始化器在CompanySettingView中做。將它們更改爲屬性並在構造函數中初始化它們(確保該類具有默認構造函數),並且'CompanySettingView'中的所有內容都應該是黃金 – Slicksim
爲什麼不'set'和'get'以使其更簡單 – jamiedanq