2013-08-24 6 views
8

Korzystanie z C# MVC4Object Reference nie ustawione do obiektu (wywołanie Razor Model z widokiem)

moim zdaniem:

@using Universe.Models 
@model UserModel 
@section css { 
<link href="@Url.Content("~/Content/assets/charcreation.css")" rel="stylesheet"/>} 
@using (Html.BeginForm("AddUser","Home", FormMethod.Post)) 
{ 

<div class="row-fluid"> 
      <table id="tblBio"> 
       <tr> 
        <td class="span3"> 
         <span class="labeltext">Alias:</span> 
        </td> 
        <td class="span5"> 
         @Html.TextBox(Model.Alias) 
        </td> 
        <td class="span4"> 
         <span class="ui-state-highlight hidden"></span> 
        </td> 
       </tr> 

Moja Model:

public class UserModel 
{ 
    public int Id { get; set; } 
    public string Alias { get; set; } 
    public string Email { get; set; } 
    public string Password { get; set; } 
    public bool IsExternal { get; set; } 


    public UserModel() 
    { 

    } 

    public UserModel(User user) 
    { 
     if (user == null) return; 
     Alias = user.Alias; 
    } 
} 

Ale trzymam uzyskiwanie błąd:

enter image description here

Kiedy próbuję debugować, to nawet nie wchodzi do metody Html.TextBox lub do mojego modelu.

+2

dla kopnięć, można pokazać swoją Action Controller .. gdzie nazywasz widok? –

+0

Cóż, może po prostu nie jest ustawione na instancję obiektu? Czy sprawdziłeś, czy Alias ​​nie ma wartości NULL? – VsMaX

+0

Prawie wszystkie przypadki wyjątku "NullReferenceException" są takie same. Zobacz "[Co to jest wyjątek NullReferenceException w .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)" w przypadku niektórych wskazówek. –

Odpowiedz

23

Nie widząc działania kontrolera, domyślam się, że model jest pusty.

W kontrolerze upewnij się, że przekazujesz wystąpienie modelu do widoku. Na przykład:

return View(new UserModel()); 

Zamiast:

return View(); 
3

Trzeba zdać Model w Controller działania po powrocie specyficzna View

return View(new Model()); 
+0

Dzięki, to było to! – ArjaaAine