mvc控制器返回'html data'而不是view

时间:2010-02-02 05:37:30

标签: c# asp.net-mvc jquery controller

我有一个模块控制器,它将一个视图页面(.aspx)返回(呈现)到main.aspx页面

但现在我希望控制器将.aspx页面的整个内容返回到调用此控制器的javascript函数

请帮助

我在main.aspx中的调用函数

    $.get('/Module/Select/',
        { TemplateName: TemplateName }, function(result) {
            alert(result);
 });

我的控制器

 public ActionResult Select(string TemplateName)
    {

return View(TemplateName);           

    }

它应该将'TemplateName'的内容返回给函数(result){....}

4 个答案:

答案 0 :(得分:2)

您需要对控制器的操作进行异步(ajax)调用,并将对象作为JSON传递。在成功的回调函数中,只需评估结果,你就会得到你的对象。

$("#yourButtonId").click(function(ev) {
  ev.preventDefault();

  $.get('/Module/Select/',
    { TemplateName: TemplateName }, function(result) {
        var myObject = eval('(' + result + ')');
        alert(myObject);
 });
});

在您的控制器中检查请求是否是ajax请求并将对象作为JSON返回。

public ActionResult Select(string TemplateName)
{
    if (Request.IsAjaxRequest())
    {
        return Json(TemplateName);
    }
    return View(TemplateName);           
}

通过这种方式,您的操作将适用于ajax和非Ajax请求。

答案 1 :(得分:1)

我需要做一些熟悉的事情。我通过页面定义,我只是需要内容,作为部分视图。

然后,您可以对Jquery进行GET或POST操作,该操作可以按如下方式返回:

return PartialView("ViewName", model);

这也可以强烈输入模型。

然后,JQuery处理函数中的结果var将只包含您需要的HMTL。

答案 2 :(得分:0)

你有什么回电话?

  $.get('/Module/Select/',
    { TemplateName: TemplateName }, function(result) {
        alert(result); });

答案 3 :(得分:0)

您也可以使用:

 $.load('/Module/Select/',
    { TemplateName: TemplateName },function(result) {
        alert(result); });
        });

希望这就是你要找的东西:)