如何使用jQuery调用ASP.NET MVC 3操作?

时间:2012-02-03 17:04:08

标签: jquery asp.net-mvc-3

如何使用jQuery调用ASP.NET MVC 3操作?

实际上,在我的index.cshtml我有一个组合框,它有来自数据库的sectorz名称。每当我点击一个选项时,

  onclick="Get_sector("some_sector_Name")"

调用上面的jQuery函数。下面是jQuery函数。

function Get_sector(sec)
{
    //$.post("/Main/selected_sector?sectrz=" + sec , insertCallback);

    $.ajax(
    {
        type: "POST",
        url: "/Main/selected_sector",
        data: "sectrz=" + sec,

        success: function (result) {
            alert("submitted");
        },

        error: function (req, status, error) {
            alert("Sorry!!");
        }
    });
}

每当我点击组合框选项时,我想加载一个名为Selected_sector的新动作。在此操作中,将显示selected_sectorz的完整信息。例如,所选区域有100个待售房屋等(实际上我正在为我父亲的业务开发一个房产门户网站。我是ASP.NET MVC 3的学生和新人。)

public ActionResult Selected_sector(string sectrz)
{
    var sec = DB.sectors.Include("Homes_Sale").OrderBy(m=>m.sectorId).Where(m=>m.sectorName==sectrz).ToList();
    return View(sec);
}

然后我在这一行插入一个断点:

return View(); // return action of Selected_sector

然后没有加载Selected_sector操作。 index.cshtml正在重新加载。

我在互联网上搜索了很多,但我一无所获。

3 个答案:

答案 0 :(得分:0)

尝试返回部分视图而不是视图。也就是说,

return PartialView("ViewName");

答案 1 :(得分:0)

问题可能在您看来。如果您已创建视图“Selected_sector”,则在视图中设置断点,并查看模型中是否包含任何内容。

更多详情:

您应该有一个名为“Selected_sector”的视图或要加载的视图return view("viewname", model);

答案 2 :(得分:0)

有关您问题的一些问题:

  1. 为什么在动作名称上使用下划线? .NET Naming convetions
  2. 你想用你的行动结果做什么?迭代它并创建一些HTML?在屏幕上显示结果? (我的答案取决于这个答案)。
  3. 一些建议:

    如果您在操作中使用return View(sec);,则应该有一个与您的操作名称相同的视图(在这种情况下为Selected_sector)或使用return View("ViewName",yourModel);来显示您的结果。如果您向操作提交HTTP POST,请将注释[HttpPost]放在顶部,如Shark所说。

    如果您是ASP.NET MVC 3的初学者,我建议您使用 Professional ASP.NET MVC 3 这本书。