【问题标题】:razor function call - NullReferenceExceptionrazor 函数调用 - NullReferenceException
【发布时间】:2012-12-10 17:07:27
【问题描述】:

这是一个非常简单的类(Test.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication5.Models
{
    public class Test 
    {
        public string add(string s)
        {
            return s + "blaaaaa";
        }

    }
}

和一个视图(Index.cshtml)

@model MvcApplication5.Models.Test
@{
    ViewBag.Title = "Homepage";
}

@Model.add("test")

我得到一个 System.NullReferenceException: Object reference not set to an instance of an object,但我不知道为什么。

谢谢,roxor :)

【问题讨论】:

  • Visual Studio 有一个强大的调试器。如果你学会如何使用它,你会帮自己一个巨大的忙。如果该代码中出现错误,可能是因为s 为空。是吗?谁叫这个?
  • 您真的不想从视图中调用模型上的方法。您调用方法的唯一时间是 HTML 助手。如果你想显示通过调用模型中的方法获得的信息,你应该从控制器调用它,然后将结果传递给视图(最好使用 ViewModel 或 ViewData)
  • 谢谢大家。 @Queti 是的,它是一个帮手 - 我明天会试试
  • 视图应该是 layout.cshtml。我应该为此视图创建一个控制器吗?

标签: asp.net asp.net-mvc asp.net-mvc-3 razor


【解决方案1】:

您必须创建模型的实例

var myModel = new MvcApplication5.Models.Test()

并通过控制器将其传递给视图。查看一些初学者 mvc 指南,了解如何编写控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2014-04-20
    • 2019-04-04
    相关资源
    最近更新 更多