【问题标题】:Object Reference not set to an object (calling Razor model from View) [duplicate]对象引用未设置为对象(从视图调用 Razor 模型)[重复]
【发布时间】:2013-08-27 03:37:10
【问题描述】:

使用 C# MVC4

我的观点:

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

我的模特:

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

但是,我不断收到错误:

当我尝试调试它时,它甚至没有进入Html.TextBox 方法或我的模型。

【问题讨论】:

  • 顺便说一句,你能把你的控制器动作展示给你。在哪里调用视图?
  • 好吧,也许它真的没有设置为对象实例?你检查过 Alias 是否不为空吗?
  • NullReferenceException 的几乎所有情况都是相同的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。
  • 对不起,伙计们,我是 MVC 新手.. 但根据下面的回复.. 这是我的控制器类,我没有通过我的模型。我认为控制器类只在 Posts 上调用。

标签: c# asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

返回特定的View 时,您必须在Controller 操作中传递您的Model

return View(new Model());

【讨论】:

    【解决方案2】:

    没有看到你的控制器动作,我猜你的模型是空的。

    在您的控制器中,确保您将模型的实例传递给您的视图。例如:

    return View(new UserModel());
    

    代替:

    return View();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 2021-04-11
      • 2010-09-12
      • 1970-01-01
      • 2020-03-05
      • 2020-11-17
      相关资源
      最近更新 更多