C# “理解错误”;值不能为空";错误

C# “理解错误”;值不能为空";错误,c#,asp.net-mvc,asp.net-mvc-2,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 }, { "i

我正在学习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);
        }
    }
}
公共类MVCAJAXLearningsController:控制器
{
专用字典偏移量=新字典{“utc”,0},{“bst”,1},{“mdt”,-6},{“ist”,5.5};
公共行动结果索引()
{
返回视图();
}
公共操作结果GetTime(字符串区域)
{
DateTime time=DateTime.UtcNow.AddHours(偏移量[区域]);
if(Request.IsAjaxRequest())
{
string fragment=string.Format({0}中的时间为{1:hh:MM:ss tt}),zone.ToUpper(),time);
返回内容(片段);
}
其他的
{
返回视图(时间);
}
}
}
我得到以下错误


如何解决这个问题?

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

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

问题不是您的代码。MVC项目中包含一些库,这些库用于提交回您的母版页中未引用的控制器

如果您查看脚本文件夹,您将看到两个javascrip库,分别称为MicrosoftJax.js和MicrosoftMvcAjax.js。在项目运行时,需要加载这两个文件

只需将以下两行添加到站点母版页的部分:

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

在那之后,你应该可以走了


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

问题不在于你的代码。MVC项目中包含一些库,这些库用于提交回您的母版页中未引用的控制器

如果您查看脚本文件夹,您将看到两个javascrip库,分别称为MicrosoftJax.js和MicrosoftMvcAjax.js。在项目运行时,需要加载这两个文件

只需将以下两行添加到站点母版页的部分:

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

在那之后,你应该可以走了


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

您发送给操作的参数值是什么?razor中的一个示例:
@{Html.Renderaction(“GetTime”,“MVCAJAXLearnings”,new{zone=“ist”})}

您向操作发送了什么参数值?razor中的一个示例:
@{Html.Renderaction(“GetTime”,“MVCAJAXLearnings”,new{zone=“ist”})}

+1:具体来说,“zone”参数没有填充。您好,感谢您的回复。对我想你是对的。如何传递参数?你能建议我吗?+1:具体来说,“区域”参数没有填充。嗨,谢谢你的回复。对我想你是对的。如何传递参数?你能推荐我吗?嗨,谢谢你的回复。我已经这样做了。但是,仍然没有工作。嗨,谢谢你的回复。我已经这样做了。但是,仍然不起作用。