MVC3 - Форма + POST = пустые параметры - PullRequest
0 голосов
/ 20 июня 2011

В настоящее время я работаю над веб-сайтом ASP.NET MVC3.

У меня есть простая форма аутентификации, связанная с простой моделью представления.При отладке на локальном все работает нормально.

Но сайт тоже должен работать на Apache + monomod.И вот странное поведение, с которым я сталкиваюсь: одна и та же форма с теми же запросами и параметрами не работает.

Подробнее:

Viewmodel:

</p> <pre><code>/// <summary> /// Form authentication info /// </summary> public class LogOnModel { /// <summary> /// /// </summary> [DisplayName("Username")] public string UserName { get; set; } /// <summary> /// /// </summary> [DisplayName("Password")] public string Password { get; set; } /// <summary> /// /// </summary> [DisplayName("Remember me?")] public bool RememberMe { get; set; } /// <summary> /// Targeted URL /// </summary> public string Target { get; set; } /// <summary> /// /// </summary> public LogOnModel() { } }

Основная часть представления, страница, на которой пользователь может ввести свое имя пользователя и пароль:

</p> <pre><code><%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<Website.Areas.Public.Models.LogOnModel>" %> <p> Please enter your username and password to continue. </p> <% using (Html.BeginForm()) { %> <%= Html.ValidationSummary(true, "Authentication failed.")%> <p> <%= Html.ActionLink("I forgot my password","PasswordRecovery","Home") %> </p> <div> <fieldset> <div class="editor-label"> <%= Html.LabelFor(m => m.UserName) %> </div> <div class="editor-field"> <%= Html.TextBoxFor(m => m.UserName) %> <%= Html.ValidationMessageFor(m => m.UserName)%> </div> <div class="editor-label"> <%= Html.LabelFor(m => m.Password)%> </div> <div class="editor-field"> <%= Html.PasswordFor(m => m.Password) %> <%= Html.ValidationMessageFor(m => m.Password) %> </div> <div class="editor-field"> <%= Html.CheckBoxFor(m => m.RememberMe) %> Remember me </div> <p> <input type="submit" value="Connect me!" /> </p> </fieldset> </div> <% } %>

И контроллер, получая информацию об аутентификации:

</p> <pre><code> [HttpPost] public ActionResult LogOn(LogOnModel model) { string username = model.UserName; string password = model.Password; //On Apache, username & password are empty ... }

Как я уже сказал в комментариях, имя пользователя ипароль пуст.На локальном сервере отладки ASP.NET все работает нормально, и, используя Fiddler, я вижу, что запросы на аутентификацию содержат данные формы (имя пользователя, пароль и т. Д.).

Любая идея, почему привязка, кажется, неза работой?Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Только что нашел мой ответ, много месяцев спустя.Это немного поздно, но если у кого-то есть такая же проблема, вот решение:

Очистите файл Web.config.Удалить все строки, которые являются опциональными

0 голосов
/ 21 июня 2011

Какую версию моно вы используете? Я столкнулся с этой проблемой, когда впервые попробовал настроить сайт MVC 2 на моно (2.4 или 2.6). Я не помню, что лежало в основе этого - довольно сложная моно ошибка / реализация, которая с тех пор была исправлена ​​- MVC3 / Razor на моно 2.10.2 работает как ожидалось.

...