我有以下代码,我有3个与之相关的问题:
视图中的JScript:
$('#page1').load('@Url.Action("QuestionList", "Tests", new { testId = Model.Test.ID , Page = 2 })');
测试控制器中的操作:
public ActionResult QuestionList(int testId, int Page)
{
// some meaningless operations here
return PartialView("QuestionList", somevalue);
}
(局部视图也是QuestionList - 我尝试了另一个名字,只是为了安全起见 - 而且它再次无效)
问题:
我已经检查了这样的线程:Pass multiple values from view,但建议的解决方案实际上是我的问题。
非常感谢任何帮助。
答案 0 :(得分:5)
您是否尝试检查对服务器的请求中的查询字符串,以确保它没有被转义?
它应该类似于
"/Tests/QuestionList?testId=1&Page=2"
我的猜测是逃脱了:
"/Tests/QuestionList?testId=1&Page=2"
如果这是问题,请使用@ Html.Raw()帮助程序。有关完整的解决方案,请参阅MVC3 Url.Action querystring generation。
答案 1 :(得分:0)
首先:你是怎么通过模特的?当使用MVCContrib网格时,我遇到了类似于你的问题。我试图通过实例化一个新对象来发送列和顺序等数据,但这并没有锻炼。我不得不传递类似@Url.Action("QuestionList", "Tests", new { testId = Model.Test.ID , Page = 2, options = new MVCContrib.Options() })
的MVCContrib.Options对象,而是发送类属性的名称:@Url.Action("QuestionList", "Tests", new { testId = Model.Test.ID , Page = 2, Column="xxx", Order=Ascending })
或类似的东西。
此外,您似乎正在正确创建链接。为了以防万一,放一个" @"在Page
前面确定,也许这是一个保留字。