理解错误“值不能为空”错误

时间:2011-10-27 15:10:31

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

我正在学习ASP.NET MVC 2,我正专注于“Ajax和客户端脚本”。

我按照以下书写了下面的代码:

public class MVCAJAXLearningsController : Controller
{
    private Dictionary<string, double> offsets = new Dictionary<string, double> { { "utc", 0 }, { "bst", 1 }, { "mdt", -6 }, { "ist", 5.5 } };

    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GetTime(string zone)
    {
        DateTime time = DateTime.UtcNow.AddHours(offsets[zone]);
        if (Request.IsAjaxRequest())
        {
            string fragment = string.Format("<div>The time in {0} is {1:hh:MM:ss tt}</div>", zone.ToUpper(), time);
            return Content(fragment);
        }
        else
        {
            return View(time);
        }
    }
}

我收到以下错误。

***Error***

如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

不是100%,但您似乎没有将参数传递给GetTime。

答案 1 :(得分:0)

问题不在于您的代码。 MVC项目中包含用于提交回未在主页中引用的控制器的库。

如果查看Scripts文件夹,您将看到两个名为MicrosoftAjax.js和MicrosoftMvcAjax.js的javascrip库。这两个都需要在项目运行时加载。

只需将这两行添加到您网站母版页的部分:

<script src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript"></script>

在那之后,你应该好好去。

试试这个,看看是否有帮助。

答案 2 :(得分:0)

您发送给该操作的参数值是多少?剃刀的一个例子: @ {Html.Renderaction(“GetTime”,“MVCAJAXLearnings”,new {zone =“ist”});}