我在我的控制器上定义了一个动作,它接受一个整数并返回一个字符串值:
public string SqlQuery(int listItemId)
{
return _sqlListSharePointList.GetSqlQueryFromCache(listItemId);
}
我如何从我的视角中调用此操作?除了AJAX,我还有其他选择吗?
我尝试了以下但没有奏效:
$.get('/SqlReportList/SqlQuery', 1, function (data) {
alert(data);
});
“SqlReportList”是我的控制器的名称。
我也尝试了以下代码:
$。get('/ SqlReportList / SqlQuery / 1',function(data){ 警报(数据); });
但它在listItemId为null的生产中引发了异常。
我应该以不同的方式装饰我的动作吗?
我也尝试通过完全限定名称访问它,但同样的错误:
http://localhost:4574/SqlReportList/SqlQuery/1
谢谢,
答案 0 :(得分:1)
如果您不想使用ajax(建议使用),那么只有通过页面刷新才能调用方法,只有这样才能从视图中再次访问服务器端(控制器)。
答案 1 :(得分:0)
$.get('/SqlReportList/SqlQuery', { "listItemId": listItemId }, function (data) {
$('#tbSqlQuery').text(data); }
);
答案 2 :(得分:0)
渲染周围页面时参数是否已知?
如果是这样(并且我已正确理解您的问题),那么您可以使用Html.RenderAction。见http://haacked.com/archive/2009/11/17/aspnetmvc2-render-action.aspx
如果没有,那么你只能真正使用AJAX或整页重新加载。要获得适合AJAX的URL,您应该能够使用具有一些占位符值的Url.Action。
T4MVC项目为各种事物提供强类型支持,包括操作URL,甚至支持Javascript代码的显式占位符。请参阅http://t4mvc.codeplex.com/documentation
的第2.2.2节