【问题标题】:Asp.net ajax query returning pageAsp.net ajax 查询返回页面
【发布时间】:2014-10-30 03:34:08
【问题描述】:

我首先尝试在我的页面中使用 jQuery 运行 ajax 请求。在查看页面 localhost:1382/Home/Index我有这个代码:

...bla-bla, another usless code..
 $.ajax({
                        url: "Index/ShowStadium",
                        contentType: "application/json; charset=utf-8",
                        dataType: "text",
                        type: "POST",
                        data: "",
                        success: function (data) {
                            $(".right-content").html(data);
                        },
                        error: function (xhr, textStatus) {
                            alert(textStatus);
                            $(".right-content").html("в этом клубе нет спортивных площадок");
                        }

                    });
...other usless code...

所以我在HomeController 中添加了一个名为ShowStadium() 的函数。但每次我遇到这样的错误之一:

  1. 200 - 解析错误。
  2. 好的,但是响应是一整页。

这是我的HomeController 代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ProjectMVC.Models;
using System.Web.Services;

    namespace ProjectMVC.Controllers
    {
        public class HomeController : Controller
        {
            private readonly Initializer init = new Initializer();

            public ActionResult Index()
            {
                return View();
            }

            [HttpPost]
            public ActionResult Index(EventDetails obj)
            {
                if (ModelState.IsValid)
                {
                   ViewData["Error"] = "nice one!";
                   return Redirect("/home/index2.cshtml");
                }
                else
                {
                    ViewData["Error"] = "Заполните необходимые поля, пожалуйста";  // If JS disabled
                }
                return View();
            }

            [WebMethod]
            public static string ShowStadium()
            {
                return "Футбольное поле";
            }
        }
    }

正如我所说,对我来说最大的问题是响应页面,即返回 HomeController 的视图页面。

【问题讨论】:

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


    【解决方案1】:

    此使用操作不需要 webMethod:

    public ActionResult ShowStadium()
    {
        return Content("Футбольное поле");
    }
    

    javascript:

    $.ajax({
          url: "HOme/ShowStadium",
          contentType: "application/json; charset=utf-8",
          dataType: "text",
          type: "POST",                       
          success: function (data) {
              $(".right-content").html(data);
          },
         error: function (xhr, textStatus) {
              alert(textStatus);
              $(".right-content").html("в этом клубе нет спортивных площадок");
         }
      });
    

    【讨论】:

    • 是的!是的是的!!非常感谢!
    • 你能解释一下为什么在所有教程视频中在响应函数之前添加 [webMethod] 吗?
    • @daney89 因为这些教程可能是针对 asp.net webforms 的,这是 asp.net mvc。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2021-08-04
    相关资源
    最近更新 更多