Виртуальный объект модели ASP.NET MVC AJAX является нулевым - PullRequest
0 голосов
/ 10 августа 2011

Я использую ASP.NET MVC и C # для вставки объекта (класс модели POCO) в базу данных.Запрос и ответ обрабатываются JQuery AJAX.

Ответ является строго типизированным частичным представлением, которое отображает данные объекта.HTML-код из частичного представления затем добавляется к веб-странице.

Класс объекта (класс Project) содержит виртуальный объект (класс Status), который имеет дополнительные свойства, которые также должны быть возвращены.

Проблема, с которой я столкнулся, заключается в том, что виртуальный объект (Status) возвращается как ноль при обработке AJAX.Однако, если я отключу AJAX, постбэк отобразит правильные данные виртуального объекта.

Не уверен, что это сильно поможет, но вот часть моего кода.

Действие контроллера

public ActionResult AddProject(UpdateProjectModel model)
    {
        System.Guid guid = System.Guid.NewGuid();

        var project = new Project
        {
            Guid = guid.ToString(),
            JobNumber = model.JobNumber,
            Title = model.Title,
            Client = model.Client,
            Details = model.Details,
            StatusID = model.StatusID,
            LastModified = DateTime.Now
        };

        _projectService.AddProject(project);

        if (Request.IsAjaxRequest())
        {
            var newProject = _projectService.GetProjectByGuid(project.Guid);

            return PartialView("Project", newProject);
        }
        else
        {
            return RedirectToAction("Index");
        }
    }

Класс проекта

public class Project
{
    [Key]
    public int ProjectID { get; set; }

    public string Guid { get; set; }

    public string JobNumber { get; set; }

    public string Title { get; set; }

    public string Client { get; set; }

    public string Details { get; set; }

    public int StatusID { get; set; }

    public DateTime LastModified { get; set; }

    public virtual Status Status { get; set; }
}

Класс статуса

public class Status
{
    [Key]
    public int StatusID { get; set; }

    public string StatusText { get; set; }
}

Поэтому мой вопрос заключается в том, как получить статус проекта, чтобы он не возвращал ноль при обработке AJAX?

1 Ответ

1 голос
/ 01 сентября 2011

Я забыл «включить» виртуальный статус в метод GetProjectByGuid. Это работает сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...