Я довольно новая для работы с ASP.NET MVC, и я в настоящее время пытаюсь решить проблему, я просто не могу получить мою голову вокруг:View возвращает нуль модель
Я пытаюсь загрузить currentArea из моей базы данных и создать объект CurrentArea из него, как это:
//My view ("PlayGame")
@model SE2_S2P2_opdracht.Models.CurrentArea
<html>
<body>
<div style="position:absolute; margin-top:8%; background-color:dimgrey; border:solid thin; border-color:darkgrey; width:59.45%; height:20%; opacity: 0.9">
@if (Model.area.GoNorth(Model.area.NorthMap))
{
using (Html.BeginForm("NextArea", "Game", new { direction = "North" }, FormMethod.Post))
{
<div style="position:absolute;top:8%; left:7%;">
@Html.HiddenFor(m => m.area)
@Html.HiddenFor(m => m.player)
<input id="submit" type="submit" value="Go North" class="btn" />
</div>
}
}
</div>
</body>
</html>
Так что, когда я нажимаю на кнопку Go North должно вызвать это:
(В итоге: он должен загрузить новую CurrentArea на основе просматриваемый токArea)
//My Controller ("GameController")
public ActionResult NextArea(CurrentArea currentarea, string direction)
{
if (direction == "North")
{
return View("PlayGame", currentarea = new CurrentArea(AreaRepo.GetByNorthMap(currentarea.area), currentarea.player));
}
После нажатия кнопки я получаю нулевую ссылку, говоря, что моя CurrentArea (переданная контроллеру) имеет значение NULL. Он, однако, читает мою строку направления.
Мой CurrentArea Класс лишь обертка
public class CurrentArea
{
public Area area { get; set; }
public Player player { get; set; }
public Enemy enemy { get; set; }
public CurrentArea()
{
}
public CurrentArea(Area area, Player player)
{
this.area = area;
this.player = player;
}
Я удостоверился все необходимые свойства класса имели «{получить, набор;}» на них. (Те, которые я использую, по крайней мере, в необходимых конструкторах)
Я полагаю, что у меня отсутствует то, что может быть обнаружено более опытными программистами. (с помощью @ html.hiddenfor() я могу передать определенные объекты/объекты класса без их отображения, верно?)
Вы видите, что на самом деле публикуется? –
Отладчик показал, что все мои свойства «CurrentArea» возвращены как null. Однако проблема решена. :) –