【问题标题】:Fill DropdownList with data from database MVC 4 Razor使用数据库 MVC 4 Razor 中的数据填充 DropdownList
【发布时间】:2016-01-15 13:31:31
【问题描述】:

您好,问题指出我有 3 个不同的表,其中包含数据;

第一个表(类型):

id    type
1     Day
2     Month
3     Year

第二张表(服务器):

server
Europe
Asia
North America
South America

第三张表(状态)

status
Error
Verified

我必须创建一个包含 3 个所需下拉菜单的日志,我认为如果我将 dropdropmenu 与数据库中的数据一起使用,那么以后更新更多信息会更加容易和容易。

这是我的 AddLogModel

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace ReviewLogs.Models
{
    public class AddLogModel
    {

        [Display(Name = "Type: "),
        Required(ErrorMessage = "Required")]
        public List<string> type { get; set; }

        [Display(Name = "Server: "),
        Required(ErrorMessage = "Required")]
        public List<string> server { get; set; }

        [Display(Name = "Status: "),
        Required(ErrorMessage = "Required")]
        public List<string> status { get; set; }


    }
}

还有我的主控制器:

public ActionResult AddLogReview(AddLogModel model)
    {
        if (Request.IsAuthenticated)
        {


            if (ModelState.IsValid)
            {

                using (var db = new reviewlogsEntities())
                {



                }

            }

            else
            {
                //Honestly I don't think this will ever be hit but lets just be safe
                ModelState.AddModelError("", "Required Data Not Filled In");
            }

            return View(model);

        }
        else
        {
            return RedirectToAction("index", "home");
        }
    }

我将如何将 3 个表格信息从我的数据库中获取到 3 个单独的下拉列表中。我无法更改表格布局,我得到了这个数据库。您能否也展示一下视图的外观?对此,我真的非常感激!

标题

【问题讨论】:

  • 你真的应该有 3 个不同的模型类针对 3 个不同的数据库实体,然后你可以使用脚手架模板/生成将数据库值绑定到下拉列表的下拉视图。
  • @Rahul 你能否解释得更详细一点,我不确定我是否理解
  • 下拉列表绑定到单个值,因此您的模型(视图模型)需要所选值的属性和每个下拉列表的集合(生成选项)。目前尚不清楚您想在 POST 方法中做什么 - 您是否要从下拉列表中保存 3 个选定的值(例如 2"North America""Verified" 某处?

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


【解决方案1】:

有这样的模型

public class Server
{
    [Display(Name = "Server: ")]
    [Required(ErrorMessage = "Required")]
    public string server { get; set; }
}

在您的控制器中,您可以获取服务器列表并将其传递给查看

    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Index()
    {
        List<Models.Server> serverList = new List<Models.Server>()
        {
            new Server {server = "abc"}, 
            new Server {server = "xyz"}, 
            new Server {server = "def"}
        };
        return View(serverList);
    }

在视图中获取下拉菜单

    @Html.DropDownListFor(model => model.Select(s => s.server), 
                            Model.Select(s => new SelectListItem
                            {
                                 Text = s.server, Value = s.server
                            }))

模型在哪里@model IEnumerable&lt;Models.Server&gt;

【讨论】:

    猜你喜欢
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    相关资源
    最近更新 更多