asp.net mvc 3从控制器动作调用javascript

时间:2011-12-15 22:39:40

标签: javascript asp.net-mvc

这就是我的控制器动作 -

public void GetResizedImage(int height, int width, int GroupingId)
{
    //Generate image here
    image.RenderToStream();
    //here i need to execute "$("#modalDialog").dialog("option", "position", 'center');" to center my dialog after image is rendered.
}

在我的客户端,我正在分配像这样的图像src -

var imgsrc = "Group/GetResizedImage/?height=" + height + "&width=" + width + "&GroupingId=" + GroupingId;
$("#ImageDiv").find("#MyImage").attr("src", imgsrc);

图像在jquery对话框上呈现,因此对话框调整大小并隐藏在浏览器的右侧,这会创建水平滚动条,我不想在屏幕上显示滚动条

在渲染图像后,是否有中心我的jquery模态对话框? 我知道我曾经在webforms中使用ScriptManager.RegisterClientScriptBlock,但由于这是MVC我无法使用它。 任何帮助,将不胜感激。 感谢

2 个答案:

答案 0 :(得分:2)

您可以绑定到图像的加载事件。这里有一些示例代码,因为你没有包含所有的javascript(我没有测试过这个,但是load事件是一般的想法):

var imgsrc = "Group/GetResizedImage/?height=" + height + "&width=" + width + "&GroupingId=" + GroupingId;
var img = $("#ImageDiv").find("#MyImage")
img.load(function() {
    // call your resize here
});
img.attr("src", imgsrc);

答案 1 :(得分:0)

您无法从控制器操作方法执行脚本。控制器操作方法在服务器上执行。 Javascript& jQuery在浏览器上执行。