我是MVC的新手,之前在C#控制台应用程序中做了很多数值编程。我想最终构建运行这些相同类型程序的Web应用程序。我的第一次尝试遇到了困难。
这是一个非常基本的应用程序,它将从表单中获取一个数字,然后计算1和该数字之间的所有数字的总和,这些数字可以被3或5整除。我创建了一个简单的Model类,其中包含一个与输入对应的变量:
namespace MvcDemo.Models
{
public class Values
{
public int Number { get; set; }
}
}
然后我创建了一个控制器类:
namespace MvcDemo.Controllers
{
public class HomeController : Controller
{
Values v = new Values();
public ActionResult Index()
{ return View(); }
[HttpPost]
public ActionResult Index(int number)
{
v.Number = number;
return View(v);
}
}
}
最后是View:
@Model MvcDemo.Models.Values
@{ViewBag.Title = "Home Page";}
<h1>Sum of Multiples of 3 & 5</h1>
@using (Html.BeginForm()){
@Html.TextBox("number");
<input type="submit" />
}
@{
int n;
List<int> nums = new List<int>();
int sum = 0;
if(@Model.Number!=null)
{
n = @Model.Number;
}
else
{
n = 10;
}
for (int i = 1; i < n; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
nums.Add(i);
}
}
for (int j = 0; j < nums.Count; j++)
{
sum += nums[j];
}
}
<p>The sum of the factors is: @sum</p>
当我尝试运行它时,我得到一个异常说&#34;无法对空引用执行运行时绑定&#34;。这是指我的视图页面,我试图分配n。我不太确定如何解决这个问题。
在视图类中使用数值逻辑还是在控制器类中更好是不好的做法?
答案 0 :(得分:1)
您收到错误,因为该模型为空。
如果您使用强类型视图,则不会出现该错误,但由于您编写了@Model
而不是@model
,因此您的视图不是强类型的。