2010-11-08 4 views
1

Интересная проблема.Отправить кнопку не отправляет

При изменении области проекта я разбил одно приложение на два приложения. Я создал новый проект вместо того, чтобы пытаться взломать существующее приложение на два и повторно использовать большую часть ранее написанного кода. Я схожу с последней ошибки, из-за которой я вытаскиваю волосы.

У меня есть список элементов с флажком в каждой строке, чтобы позволить пользователю работать с несколькими строками за раз. У меня есть некоторая логика проверки jQuery, чтобы убедиться, что опция выбрана в раскрывающемся списке и выбрана хотя бы одна строка. Это работает, однако ничего не происходит, когда я нажимаю кнопку отправки. Я даже установил точку останова в первой строке кода в функции и никогда не запускается. Код тот же, за исключением изменения действия от Display до Index. Есть предположения?

код следующим образом:

<% using (Html.BeginForm("Index", "Timesheet", FormMethod.Post, new { Id = "form1" })) 
    { %> 
<%= Html.DropDownList("DropDownAction", new SelectList(Model.Actions, "Value", "Text"), "(Select)", new { Class = "required" })%> 
<input type="submit" value="Submit" /> 
.... 
<% } %> 

TimesheetController.cs

// 
    // GET: /Timesheet/ 
    [Authorize] 
    public ActionResult Index() 
    { 
     .... 
    } 

    // 
    // POST: /Timesheet/ 
    [HttpPost, Authorize] 
    public ActionResult Index(int[] CbSelect, string DropDownAction, SupervisorCredentials user) 
    { 
     foreach (int id in CbSelect) 
     { 
      ... 

     } 

     return RedirectToAction("Index"); 
    } 

Сгенерированный HTML:

<form Id="form1" action="/Timesheet" method="post"><select Class="required" id="DropDownAction" name="DropDownAction"><option value="">(Select)</option> 
<option value=" ">Approve</option> 
<option value="P">Paper Signature</option> 
<option value="A">Absent Employee</option> 
</select> 
<input type="submit" value="Submit" /> 

Обновление: я удалил JQuery, и теперь я получаю нулевое исключение. Мои опубликованные значения: DropDownAction=P&CbSelect%5B%5D=274680&CbSelect%5B%5D=275744. Почему бы не public ActionResult Index(int[] CbSelect, string DropDownAction) работать? Я получаю правильное значение в DropDownAction и null в CbSelect.

ответ

3

Не знаете, почему, но, по-видимому, в моей секции проверки jQuery у меня был debug: true. Похоже, что это предотвращает отправку формы. Я понятия не имею, как это произошло. Я не добавил. Форма работает сейчас.

+0

Не могли бы вы рассказать о том, как вы это исправили? – Shimmy

+0

Это было более 2 лет назад ... Больше нет, кроме меня. –

+0

Взгляните на [этот] (http://stackoverflow.com/questions/16193615/asp-net-mvc-form-doesnt-submit-to-the-right-action) вопрос? – Shimmy

0

Его вероятность того, что на самом деле отправляется в форме, не соответствует тому, что MVC ожидает от подписи вашего действия. Если его даже вообще не публиковать (т. Е. Никогда не ударять по серверу, можно проверить с помощью firebug или аналогичного), каков выход HTML вашего представления?

+0

Как проверить, что отправляется? Я добавил сгенерированный HTML. Как я уже сказал, это сработало в предыдущем приложении, я скопировал это. –

2

Это может быть очень неприятно для отладки этих ситуаций. Получите себе инструмент, например, http://www.fiddler2.com/fiddler/version.asp запустите его, и он будет отслеживать все веб-запросы, чтобы вы могли легко увидеть, что такое ответ, и посмотреть, действительно ли ваша форма действительно отправляется.

+0

Хорошо, ничего не получает. Я начну извлекать материал jQuery, пока он не сработает. –

0

Вы изменили свою маршрутизацию по умолчанию?

Кроме того, html, который вы опубликовали, не имеет метки закрытия </form>. Это там?

+0

Не изменили маршрутизацию, да, есть окончание. Сегодня я собираюсь проверить предложение Эрика. –

Смежные вопросы