使用asp.net core mvc计算页面加载量

时间:2016-12-27 17:28:49

标签: c# asp.net-core asp.net-core-mvc

我正在尝试计算页面加载,但我一直在浏览器上收到此错误消息:

NullReferenceException:未将对象引用设置为对象的实例。 LoadPage.cshtml中的MoveNext,第4行

为什么message1为null的任何想法?

我的控制器代码:

public IActionResult LoadPage()
    {


        return View();
    }

    [HttpPost]
    public IActionResult LoadPage(Message message)
    {
        Message message1 = new Message();
        message1.Text = "Pageloads: ";
        message1.Number += 1;

        return View("LoadPage", message);
    }

我的观点:

<form asp-controller="MyForms" asp-action="LoadPage" method="post">
<p>@Model.Text @Model.Number</p> 
<input id="btnLoad" type="submit" value="Click here to load page" />
</form>

2 个答案:

答案 0 :(得分:3)

  

为什么message1为null的任何想法?

它不是空的。很可能message为空,因为您在控制器中获取它并将其传递给您的视图。

return View("LoadPage", message);

答案 1 :(得分:1)

您的视图使用代码Model.Number,这意味着您需要传递Message类的非null对象。您可以在GET操作方法中执行此操作。

public IActionResult LoadPage()
{
   var vm = new Message();
   return View(vm);
}

此外,您不需要重新创建新的Message对象,您可以使用用作方法参数的对象。您还需要清除模型状态字典以查看更新的值。您可以使用ModelState.Clear()方法执行此操作。

[HttpPost]
public IActionResult LoadPage(Message message)
{     
    message.Text = "Pageloads: ";
    message.Number += 1;
    ModelState.Clear();
    return View("LoadPage", message);
}