【问题标题】:Display checkbox Data value from database using mvc使用 mvc 显示来自数据库的复选框数据值
【发布时间】:2016-08-05 14:25:35
【问题描述】:

我需要创建一个表格来注册。

表单示例如下所示

如何在表格中显示红圈中的值? (值来自数据库)

我的控制器

namespace Insurance.Controllers
{
    public class FlexiPAController : Controller
    {
        //
        // GET: /FlexiPA/

        public ActionResult RegisterFlexiPA()
        {


            return View();
        }

        public ActionResult  RegisterFire()
        {
            return View();
        }

        public ActionResult RegisterMotor()
        {
            return View();
        }
    }
}

我的视图模型

namespace Insurance.ViewModels
{ 
    public class RegisterInfoPA
    {
        public register reg { get; set; }
        public infoPA infoFlexiPA { get; set; }
        public personalInfo pinfo { get; set; }
        public List<maritalInfo> minfo { get; set; }
        public childInfo cInfo { get; set; }
    }
}

我的看法

@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

   <!--TITLE-->
    <div class="editor-label">
        Title
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.reg.title)
        @Html.ValidationMessageFor(model => model.reg.title)
    </div>
    <!--NAME-->
    <div class="editor-label">
        Name
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.reg.registerNm)
        @Html.ValidationMessageFor(model => model.reg.registerNm)
    </div>

    <!--IC NO-->
    <div class="editor-label">
        IC No
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.reg.identityNo)
        @Html.ValidationMessageFor(model => model.reg.identityNo)
    </div>

        <!--GENDER-->
<div class="editor-label">
    Gender
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.pinfo.gender)
    @Html.ValidationMessageFor(model => model.pinfo.gender)
</div>
    <!--Marital Status-->
    <div class="editor-label">
        **Marital Status**
    </div>
    <div class="editor-field">     
    </div>

想在此处勾选婚姻状况,例如:单身、丧偶、已婚

我是 mvc 新手,非常感谢您的帮助。

【问题讨论】:

    标签: c# asp.net asp.net-mvc razor checkbox


    【解决方案1】:

    试试这个 让我们先尝试一个控制器

    你的控制者

    namespace Insurance.Controllers
    {
    public class FlexiPAController : Controller
    {
    //
    // GET: /FlexiPA/
    
    DATABASENAME db = new DATABSENAME (); //ESTABLISHING CONNECTION TO DATABASE
    public ActionResult RegisterFlexiPA()
    {
            using (var dataBase = new DATABASENAME ())
            {
                var model = new RegisterInfoPA()
                {
                    minfo = dataBase.maritalInfoes.ToList(),
                    //IF YOU WISH TO ADD MORE                   
    
                };
                return View(model);
            }     
    }
    

    你的 ViewModel

    将您的婚姻信息更改为 IEnurumerable 而不是 List

     public IEnumerable<maritalInfo> minfo { get; set; }
    

    您的观点

    我建议你制作单选按钮而不是复选框,因为你肯定只能选择一个,例如:单身或已婚。因此,最好使用单选按钮

            <div>
            Marital Status
            @foreach (var item in Model.minfo)
            {
                @Html.RadioButtonFor(model => model.pinfo.maritalId, item.maritalId)@Html.Label(item.maritalStatNm)
            }
        </div>
    

    这是你的显示方式,然后在控制器中你只需要保存它。

    【讨论】:

      【解决方案2】:

      你可以使用:

      @foreach(var item in Model.minfo) { @Html.EditorFor(o => item) }

      创建一个名为 maritalInfo.cshtml 的局部视图。将此部分放在 Views/Shared/DisplayTemplates 中。

      在局部:

      @model maritalInfo
      <!--Marital Status Name and Value depend on your maritalInfo Model-->
      <div class="editor-label">
          @Html.LabelFor(o => Model.Name)
      </div>
      <div class="editor-field">
          @Html.CheckBoxFor(o => Model.Value)     
      </div>
      

      【讨论】:

      • 嗨,我确实像你说的那样,但是在这一行中,它不允许我像 dis @Html.EditorFor(o => Model.item) 那样做,所以我把它改成了@Html。 EditorFor(o => Model.minfo) 并且我收到此错误异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。源错误:第 56 行:
        第 57 行:
        第 58 行:@foreach(Model.minfo 中的变量项) 第 59 行:{ 第 60 行:@Html.EditorFor(o = > 模型.minfo)
      • 对不起代码,我更正了。使用@Html.EditorFor(o => item)
      • 异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。源错误:第 56 行:
        第 57 行:
        第 58 行:@foreach(Model.minfo 中的变量项) 第 59 行:{ 第 60 行:@Html.EditorFor(o = >项目)
      • 仍然出现上述错误。我不知道为什么。与数据库的连接有什么关系吗,因为它总是 nullreferenceException
      • 当然,在控制器中,您需要绑定模型并将其提供给视图(例如:RegisterInfoPa model = yourDbCnx.RegisterInfoPa.Find(id); Return View(model)。将 List 替换为 IEnumerable
      猜你喜欢
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多