我正在学习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);
}
}
}
我收到以下错误。
如何解决这个问题?
答案 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”});}