2013-08-24 39 views
8

Sử dụng C# MVC4 đối tượngObject Reference không được đặt để một (gọi mô hình Razor từ View)

Xem của tôi:

@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> 

mẫu của tôi:

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; 
    } 
} 

Nhưng, tôi tiếp tục nhận được lỗi:

enter image description here

Khi tôi cố gắng gỡ lỗi nó, nó thậm chí không đi vào phương pháp Html.TextBox hoặc vào mô hình của tôi.

+2

Đối với đá, bạn có thể hiển thị điều khiển hành động của bạn .. nơi bạn gọi là xem? –

+0

Vâng, có lẽ nó thực sự không được đặt thành một thể hiện của đối tượng? Bạn đã kiểm tra xem Bí danh không phải là rỗng chưa? – VsMaX

+0

Hầu như tất cả các trường hợp của 'NullReferenceException' đều giống nhau. Vui lòng xem "[NullReferenceException trong .NET là gì?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)" để biết một số gợi ý. –

Trả lời

23

Nếu không nhìn thấy hành động điều khiển của bạn, tôi đoán rằng mô hình của bạn là rỗng.

Trong bộ điều khiển của bạn, đảm bảo rằng bạn đang chuyển một phiên bản của mô hình đến chế độ xem của bạn. Ví dụ:

return View(new UserModel()); 

Thay vì:

return View(); 
3

Bạn phải vượt qua bạn Model trong Controller hành động của bạn khi trả lại cụ thể View

return View(new Model()); 
+0

Cảm ơn, đó là nó! – ArjaaAine

Các vấn đề liên quan