在提交视图页面上,在mvc 3.0中的控制器中返回null模型 [英] On submit view page return null model in controller in mvc 3.0

查看:60
本文介绍了在提交视图页面上,在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆