0

我是 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); 
    }

}
}

最后是视图:

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

当我尝试运行它时,我得到一个异常说“无法对空引用执行运行时绑定”。这是指我试图分配 n 的视图页面。我不太确定如何解决这个问题。

在视图类中使用数字逻辑也是不好的做法,还是在控制器类中会更好?

4

1 回答 1

1

您收到错误,因为模型为空。

如果您使用强类型视图,则不会出现该错误,但是由于您编写了@Model而不是@model,因此您的视图不是强类型的。

于 2012-07-01T12:38:24.477 回答