Я относительно новичок в MVC. Я работаю над проектом, чтобы получить общее представление о том, как работает архитектура MVC, но у меня возникли некоторые проблемы. Я думаю, что у меня есть большая часть этого покрыта, но кое-что (маленькое я надеюсь) отсутствует.
Ниже приведены моя модель, функции класса controller / DataAccess и BusinessLogic, которые я написал, и мой метод отображения в представлении.
Может кто-нибудь, пожалуйста, заглянуть через это и, надеюсь, определить, что я делаю неправильно или отсутствует? Спасибо.
@ edit: Также хотел бы добавить, что в моем контроллере есть отладчики, функции BL и DA, и НИКОГДА из них даже не попали в ловушку ... Я считаю, что это проблема. Также большое спасибо тому, кто украсил мой вопрос.
Модель
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; }
}
Контроллер
//GET: Terminals
public ActionResult GetTerminals()
{
var model = TCBL.GetTerminalDropDowns();
return View(model);
}
Функция бизнес-логики
public TerminalCommandVM GetTerminalDropDowns()
{
TerminalCommandVM ternimals = new TerminalCommandVM();
ternimals.TerminalsDDL = TCDA.GetTerminalsDropDown();
return ternimals;
}
Функция доступа к данным
public List<SelectListItem> GetTerminalsDropDown()
{
var terminals = DB.TerminalCommand.Select(o =>
new SelectListItem { Text = o.TerminalID, Value = o.TerminalID})
.ToList();
return terminals;
}
Посмотреть
@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>
Также добавлю мой макет, когда эта страница будет нажата:
<li class="sidenav-item@(currentPage == "TerminalCommand/Index" ? " active" : "")">
<a href="@Url.Action("Index", "TerminalCommand")" class="sidenav-link"><div>Terminal Commands</div></a>
</li>