首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用基本MVC的DropDownListFor中,视图中没有显示任何数据

在使用基本MVC的DropDownListFor中,视图中没有显示任何数据
EN

Stack Overflow用户
提问于 2019-05-08 22:26:19
回答 1查看 41关注 0票数 1

我对MVC比较陌生。我正在做一些项目,以便对MVC架构如何工作有一个基本的了解,但我有一些问题。我想我已经覆盖了大部分内容,但是缺少一些东西(我希望是很小的)。

下面是我的模型、我编写的控制器/数据访问和BusinessLogic类函数,以及在视图上显示的方法。

有没有人能帮我仔细检查一下,希望能找出我做错了什么或遗漏了什么?谢谢。

@edit:我还想补充说,我在我的控制器func,BL和DA函数中都有调试器,它们都没有被命中过……我相信这就是问题所在。也非常感谢谁美化了我的问题。

模型

代码语言:javascript
复制
public class TerminalCommandVM
{
    public TerminalCommandVM()
    {
        TerminalsDDL = new List<SelectListItem>();
        TerminalCommandLookupsDDL = new List<SelectListItem>();
    }

    public TerminalCommand TerminalCommand { get; set; }

    public List<TerminalCommand> TerminalCommands { get; set; }

    [Display(Name = "Terminal ID")]
    public List<SelectListItem> TerminalsDDL { get; set; }

    [Display(Name = "Command")]
    public List<SelectListItem> TerminalCommandLookupsDDL { get; set; }
}

控制器

代码语言:javascript
复制
//GET: Terminals
public ActionResult GetTerminals()
{
    var model = TCBL.GetTerminalDropDowns();
    return View(model);
}

业务逻辑功能

代码语言:javascript
复制
public TerminalCommandVM GetTerminalDropDowns()
{
    TerminalCommandVM ternimals = new TerminalCommandVM();
    ternimals.TerminalsDDL = TCDA.GetTerminalsDropDown();

    return ternimals;
}

数据访问函数

代码语言:javascript
复制
public List<SelectListItem> GetTerminalsDropDown()
{
    var terminals = DB.TerminalCommand.Select(o => 
        new SelectListItem { Text = o.TerminalID, Value = o.TerminalID})
        .ToList();

    return terminals;
}

视图

代码语言:javascript
复制
@using (Html.BeginForm("GetTerminals", "TerminalCommand", FormMethod.Post, new { id = "formTerminalCommand" }))
<div class="row">
  <div class="col-md-12" style="overflow-y:scroll">
    <table class="table table-striped table-hover table-bordered">
      <thead>
        <tr>
          <th>Terminal</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>
            @Html.DropDownListFor(o => o.TerminalsDDL, Model.TerminalsDDL, new { Class = "form-control" })
          </td>
        </tr>
        <tr>
          <td colspan="4">HelpDescription</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

当这个页面被点击时,我也将包括我的布局:

代码语言:javascript
复制
                    <li class="sidenav-item@(currentPage == "TerminalCommand/Index" ? " active" : "")">
                    <a href="@Url.Action("Index", "TerminalCommand")" class="sidenav-link"><div>Terminal Commands</div></a>
                </li>
EN

回答 1

Stack Overflow用户

发布于 2019-05-08 23:13:37

如果你的控制器方法中的断点没有命中,那么这可能是重定向、路由、url等的问题。你可以做很多事情来解决这个问题,但没有具体的方法。

  1. 你有没有空项目的内置控制器(主页、关于等)?
  2. 向控制器添加一个构造函数方法,并在其中设置一个断点。如果命中,则问题可能出在操作上。
  3. 如果您未对路由配置或使用路由属性进行任何更改,则url应为http://localhost:xxxxx/{ControllerName}/GetTerminals
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56043038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档