在提交视图页面上,在mvc 3.0中的控制器中返回null模型 [英] On submit view page return null model in controller in mvc 3.0
本文介绍了在提交视图页面上,在mvc 3.0中的控制器中返回null模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Mvc的新人。我创建了一个注册Page.Code如下所示。
但是在[httppost]中,Action create model返回为null。我不明白为什么它返回null。
I am new in Mvc. I have created a registration Page.Code is given below.
But in [httppost] Action create model returned is null. I do not understand why it returns null.
public class MemberModel
{
SalutationRepository _salutationRepository = new SalutationRepository();
CountryRepository _countryRepository = new CountryRepository();
public tbl_Member tblMember { get; private set; }
public SelectList Countries { get; private set; }
public string ICountryCode { get; private set; }
public virtual string ICountry_id { get; set; }
public virtual string ISalutation_Id { get; set; }
public SelectList Salutations { get; private set; }
public List<SelectListItem> Genders { get; private set; }
public MemberModel(tbl_Member _tblMember)
{
tblMember = _tblMember;
Countries = GetCountries();
ICountryCode = "";
Salutations = GetSalutation();
Genders = new List<SelectListItem>();
Genders.Add(new SelectListItem { Text="Male",Value="Male"});
Genders.Add(new SelectListItem { Text = "Female", Value = "Female" });
}
public SelectList GetCountries()
{
IEnumerable<SelectListItem> CountryList = _countryRepository.CopuntrySelectAll().ToList().Select(d => new SelectListItem() { Text = d.CountryName, Value = d.Country_id.ToString() });
return new SelectList(CountryList, "Value", "Text", ICountry_id);
}
public SelectList GetSalutation()
{
IEnumerable<SelectListItem> SalutationList = _salutationRepository.SalutationSelectAll().ToList().Select(d => new SelectListItem() { Text = d.Salutation, Value = d.Salutation_Id.ToString() });
return new SelectList(SalutationList, "Value", "Text", ISalutation_Id);
}
public string GetCountryCode(string ICountry_id)
{
string CountryCode="";
if (!string.IsNullOrEmpty(ICountry_id))
{
int Country_id = Convert.ToInt32(ICountry_id);
CountryCode = _countryRepository.CountrySelect_Country_id(Country_id).CountryCode;
}
return CountryCode;
}
}
in controller
public ActionResult Create()
{
tbl_Member _tblMember = new tbl_Member();
return View(new MemberModel(_tblMember));
}
[HttpPost]
public ActionResult Create(tbl_Member _memberModel)
{
tbl_Member _tblMember = new tbl_Member();
if (ModelState.IsValid)
{
_tblMember.Salutation_Id =Convert.ToInt32( _memberModel.Salutation_Id);
_tblMember.FirstName =_memberModel.FirstName;
_memberRepository.MemberAdd(_tblMember);
return RedirectToAction("List");
}
return View();
}
in view
@model NewGlobalShoppers.Models.MemberModel
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script src="../../Scripts/modernizr-1.7.js" type="text/javascript"></script>
<script src="../../Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>MemberModel</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Salutations)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.tblMember.Salutation_Id, Model.Salutations, "Select")
@Html.ValidationMessageFor(model => model.ISalutation_Id)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.tblMember.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.tblMember.FirstName)
@Html.ValidationMessageFor(model => model.tblMember.FirstName)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
推荐答案
这篇关于在提交视图页面上,在mvc 3.0中的控制器中返回null模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文