У меня действительно странная проблема с ASP.Net MVC.
У меня есть форма, которая отправляет 3 текстовых значения в метод действия, называемый create user (для простоты, скажем, это следующее);
public ActionResult CreateUser(string FirstName, string LastName, string Email)
{
var s = FirstName + LastName + Email;
return RedirectToAction("Index");
}
Скажите также, что моя форма
<% using (Html.BeginForm("CreateUser", "User"))
{ %>
<%=Html.TextBox(("FirstName")) %>
<%=Html.TextBox(("LastName")) %>
<%=Html.TextBox(("Email")) %>
<div><input type="submit" value="Submit" /></div>
<% } %>
Теперь в моем методе действия на пользовательском контроллере значения FirstName, LastName и Email равны нулю!
Однако, если я скопирую тот же метод в другой контроллер (Game) и обновлю форму, чтобы опубликовать там, значения в методе не равны NULL! Я полностью озадачен этим.
Оба контроллера одинаковы - они наследуют один и тот же базовый класс, к ним применяются одинаковые атрибуты и т. Д.
РЕДАКТИРОВАТЬ: все заработало (не знаю, в чем была основная проблема).
У меня был пользовательский атрибут в моем методе Index на пользовательском контроллере (он по сути анализировал свойство HttpContext.Current.User.Identity.Name и автоматически передавал его в метод). По какой-то причине это было проблематично для метода Index, когда я его удалил, все стало работать как положено!
Это был мой метод Index раньше:
[Authorisation]
public Action Index(string userName){...}
и после
public Action Index() {...}