Использование jquery для частичного просмотра и обновления пользовательского интерфейса - PullRequest
0 голосов
/ 13 июля 2010

Мне нужно сделать частичное представление (возвращенное из контроллера), чтобы показать некоторые подробные сведения о клиенте. Это должно произойти, когда пользователь нажимает кнопку. Тем временем пользователь может выбирать разных клиентов в сетке. Я сохраняю записку выбранного идентификатора клиента в скрытом поле, используя jquery для события изменения выбора сетки. Когда пользователь нажимает кнопку, мне нужно передать это скрытое значение поля (выбранный идентификатор) контроллеру, контроллер выполняет некоторую работу и возвращает частичное представление. Затем мне нужно сделать это частичное представление на странице. Я пробовал следующее, но у меня есть две проблемы

  1. Я не могу понять, как отправить скрытое значение поля в контроллер
  2. После рендеринга частичного представления я не могу его перерисовать, если пользователь выбирает другого клиента и снова нажимает кнопку

Код:

  #PlaceHolder is just a div element

function DoSomwWork() {
                $('#PlaceHolder')
                .load('<%= Url.Action("GetSelectedCustSummary", 
                                      "SomeController", 
                                       new { selectedId = **HIDDEN FIELD VAL HERE** })%>');
            }
        }

1 Ответ

0 голосов
/ 13 июля 2010

Я сомневаюсь, что вы сможете сделать это таким образом.

Однако, так как вы уже используете MVC, вы сможете определить действие («GetSelectedCustSummary» в вашем случае) и вернуть объект jsonвместо этого затем манипулируйте им с помощью jQuery

Обновление: определите метод действия примерно так:

[HttpGet]
public JsonResult ActionName(string id)
{
    //some logic here to get QueryResult
    return Json(QueryResult, JsonRequestBehavior.AllowGet);
}

, затем вызовите свой метод действия в Jquery:

$.ajax({
    //you can assign id dynamically
    url: '<%= Url.Content("~/Controller/ActionName/YourId") %>',
    type: 'GET',
    dataType: 'json',
    success: function (data) {
       //manipulate your div content with data
    },
    error: function (e) {
        //manipulate your div content with error
    }
});

Каждый разВы нажимаете кнопку обновления, назначаете нужный идентификатор и запускаете функцию Jquery.У меня это сработало в моем проекте

...