Как вызвать действие ASP.NET MVC 3, используя jQuery? - PullRequest
2 голосов
/ 03 февраля 2012

Как мне вызвать действие ASP.NET MVC 3 с помощью jQuery?

На самом деле, в моем index.cshtml есть поле со списком, в котором есть имена секторов из базы данных. Всякий раз, когда я нажимаю опцию,

  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 голосов
/ 03 февраля 2012

Проблема может быть на ваш взгляд. Если вы создали представление "Selected_sector" , то установите точку останова в представлении и посмотрите, есть ли в модели какое-либо содержимое.

Подробнее:

У вас должно быть представление с именем "Selected_sector" или специальное представление для загрузки, return view("viewname", model);.

0 голосов
/ 04 февраля 2012

Некоторые вопросы по вашей проблеме:

  1. Почему вы используете подчеркивания в именах действий? .NET Соглашения об именах
  2. Что вы пытаетесь сделать с результатом ваших действий? Перебрать его и создать HTML? Отображать результаты на экране? (Мой ответ зависит от этого ответа).

Несколько советов:

Если вы используете return View(sec); в своем действии, вы должны иметь представление с тем же названием вашего действия (в данном случае Selected_sector) или использовать вместо него return View("ViewName",yourModel);, чтобы показать свой результат. Если вы отправляете HTTP POST к своему действию, поместите аннотацию [HttpPost] сверху, как сказала Акула. ​​

Если вы новичок в ASP.NET MVC 3, я рекомендую книгу Professional ASP.NET MVC 3 .

0 голосов
/ 03 февраля 2012

Попробуйте вернуть частичное представление вместо представления.То есть

return PartialView("ViewName");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...