2014-01-17 69 views
1

在我的數據中第一個.edmx文件中我有一個部分類Question;我創建了一個ViewModel來填充我的視圖併爲我的問題提交表單。ViewModel返回意外數據

雖然我提交的ViewModel工作得很好,但我得到一個非常意外的回報與我的得到ViewModel。在調試過程中,我可以看到一切,但是我需要的數據的視圖模型也返回

{System.Data.Entity.DynamicProxies.Question_AC5369E927D7DA13E53B81D39BBD14BEBF05146E3CC12E147A7CB4C32F869EF9}

這無論是我還是控制器知道如何處理。正如我所說,它也正在返回我所有其他必需的領域,但正在打破這個第一個奇怪的回報。

有沒有人有類似的結果?

按照要求,我的視圖模型;

public class GetQuestionViewModel 
    { 
    public class Question { 
    public Question Questions { get; set; } 
    public Response Response { get; set; } 
    } 
    public GetQuestionViewModel() 
    { 
     this.QuestionOptions = new HashSet<QuestionOption>(); 
     this.Responses = new HashSet<Response>(); 
    } 
    [Key] 
    public int Id { get; set; } 
    public int PageNumber { get; set; } 
    public string Question1 { get; set; } 
    public int QuestionTypeId { get; set; } 
    public Nullable<int> LinkedTo { get; set; } 
    public Nullable<int> Options { get; set; } 
    public Nullable<int> QuestionRanking { get; set; } 

    public virtual ICollection<QuestionOption> QuestionOptions { get; set; } 
    public virtual QuestionType QuestionType { get; set; } 
    public virtual ICollection<Response> Responses { get; set; } 
    } 

And the Action;

 [HttpGet] 
    public ActionResult ViewQuestion(int? id) 
    { 
     if (id == null || id == 0 || id > 13) 
     { 
      id = 8; 
     } 

     Question question = db.Questions.Find(id); 

     if (question == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(question); 
    } 
+0

您是否將數據作爲JSON返回?你使用/需要延遲加載? – lalibi

+0

我還沒有達到那個階段,但我會。這是我的第一個MVC項目,我仍在掙扎着基礎知識。 – Alex

+0

向我們展示視圖模型,如果可能的話從EF上下文構建視圖模型的控制器代碼 – MikeSW

回答

0

同期看到的是正常的,是爲了使「延遲加載」起作用而動態生成的代理。您可以嘗試禁用此行爲:

context.ContextOptions.ProxyCreationEnabled = false; 

它也可以在EDMX設計器中全局關閉。

+0

我在哪裏添加這個;到視圖模型?我可以然後調用急切加載強類型值嗎?我在這個問題中混合了蘋果和橘子嗎? – Alex

+0

我發現在tt文件中全局禁用它的地方,但它似乎沒有工作,我仍然得到相同的錯誤? – Alex