Я работал над моим asp.net mvc 4 некоторое время, и у меня есть проблема ... На самом деле у меня есть две проблемы, которые связаны ... Начнем с простого один первый.html.beginForm не вызывает метод контроллера
У меня есть много мнений и всю работу для этого, кроме .... я раздели его и сделали его простым, чтобы попытаться найти ошибку ... но следующее еще НЕ ВЫЗВАТЬ CONTROLLER МЕТОД:
@using TBS.Etracs.Web.Main.Areas.WorkOrder.Models
@model WorkOrderInputModel
@{
ViewBag.Title = "Work Orders Per Pad";
}
@using (Html.BeginForm("StartWorkOrderTask", "Mobile",
new {WorkCenterID=Model.WorkCenterID, VIN=Model.VIN }))
{
<div>
<label><strong>WorkCenterID:</strong></label>
<label>@Model.WorkCenterID</label>
</div>
<div>
<label><strong>VIN:</strong></label>
<label>@Model.VIN</label>
</div>
<input type="submit" value="Start Work Order" />
}
метод управления представляет собой контроллер классифицироваться под названием «MobileController» и вот метод подписи:
[HttpPost] //Tried with and without this attribute...
public ActionResult StartWorkOrderTask(int WorkCenterID, string VIN)
{
}
я поставил точку останова в методе контроллера .... и он никогда не вызывается, когда вводится кнопка на форме ... .
Я видел такого рода проблемы, прежде чем вызвано следующими причинами: 1), имеющий более чем один BeginForm 2) Не имея права файлов JavaScript включен 3) параметры стиля .... Я не знаю, почему, но в том числе стиль на некоторых элементов управления заставил кнопку ввода не работать ... 4) Я уверен, что я ударил других, но им это не приходит в голову прямо сейчас ....
Я использовал firebug чтобы проверить html, и я не вижу ничего плохого ... он создает форму с dataurl, указывающую на метод .... с значениями WorkCenterID и VIN, заполненными ... что может быть причиной probem? ?????
Есть ли у кого-нибудь предложение о том, что посмотреть или что попытаться отладить это?
Мой второй вопрос также с участием призвании методов контроллера .... Я знаю, что мы должны быть в состоянии иметь метод, как это:
public ActionResult StartWorkOrderTask(WorkOrderInputModel model)
это на BeginForm
@using(Html.BeginForm("StartWorkOrderTask", "Mobile"))
Но примерно в 90% случаев, когда я делаю это, метод контроллера вызван .... Я нажимаю кнопку ввода, и ничего не происходит ..... путем явного ввода аргументов в beginForm «решаю» проблему .... но я понятия не имею, почему первое не работает
Я не определил ничего особенного для маршрутов ... просто используется по умолчанию .... Я использую области, но я был осторожен в наименовании так что нет никакого конфликта ...
Я понимаю, что вы говорите о ГЭТ и пост .... у меня есть ГЭТ, что создает экран и ждет ввода .... Я просто не упоминал об этом .... Я сосредоточился на обработке информации с экрана ..., где находится сообщение ... Я ожидал, что мне нужно будет есть атрибут [HttpPost], чтобы указать сообщение, но я заметил, что код, похоже, работает так же или с HttpPost, который я не понимаю ... – user2040849
(закончилось пространство) .... Другой момент, о котором я смущаюсь, - это маршруты ... Я понимаю, что вы говорите о необходимости настраиваемых маршрутов ... но то, что меня смущает, - это код (USUALLY) работает, когда я перехожу из модели к набору примитивных типов ... Я также начинаю с модели и когда у меня возникают проблемы, преобразуйте ее в примитивные типы (без изменение маршрутов) ... и код начинает работать ????? Я не получаю никаких ошибок ... код просто зависает ... Я нажимаю кнопку, и ничего не происходит ... не вызывается метод контроллера, но нет ошибки .... Да, я проверил визуализированный html – user2040849
(закончилось space) .... в любом случае рендеринг HTML выглядит хорошо ... в приведенном выше примере это простая форма, которая публикует метод контроллера public ActionResult StartWorkOrderTask (int WorkCenterID, строка VIN) – user2040849