【问题标题】:mvc controller returns 'html data' instead of viewmvc 控制器返回“html 数据”而不是视图
【发布时间】:2010-02-02 05:37:30
【问题描述】:

我有一个模块控制器,它将视图页面 (.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'的内容返回给函数(结果){....}

【问题讨论】:

  • 您能否向我们展示您的代码,说明您是如何尝试的?您可以将内容方向返回给客户端,但使用部分视图和 ajax 表单可能会有更好的解决方案。
  • 您的路由是否真的设置为处理这个问题? jQuery POST 的 URL 看起来有点奇怪。您可能希望使用 Html.ActionLink() 生成操作方法的 URL,因为会自动考虑路由。此外,“returns(renders)”是不合逻辑的,“查看页面......进入 main.aspx 页面”也是如此。您可能想要阅读您的 ASP.NET MVC 基础知识。 :)

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


【解决方案1】:

您需要对控制器的操作进行异步 (ajax) 调用并将对象作为 JSON 传递。在成功回调函数中,只需对结果进行 eval 即可获得您的对象。

$("#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 请求。

【讨论】:

    【解决方案2】:

    我需要做一些类似的事情。我将只需要内容的页面定义为部分视图。

    然后你的 Jquery 可以 GET 或 POST 到一个控制器动作,它可以返回如下:

    return PartialView("ViewName", model);
    

    这也可以强类型化到模型中。

    您的 JQuery 处理函数中的结果变量将只包含您需要的 HMTL。

    【讨论】:

      【解决方案3】:

      你从电话中得到了什么?

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

      【讨论】:

        【解决方案4】:

        你也可以使用:

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

        希望它是您正在寻找的:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-12-30
          • 1970-01-01
          • 2017-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多