Не так, как я хочу PartialViewResult - PullRequest
0 голосов
/ 24 октября 2011

Я что-то пробую. Заранее извиняюсь за мой английский.

Код моего действия;

public PartialViewResult showProduct()
{

    var query = db.Categories.Where((c) => c.CategoryID == 4);
    return PartialView("_EditCategory",query);
}

Код моего просмотра:

 @using (Ajax.BeginForm(
    "showProduct",
    new AjaxOptions
    {
        HttpMethod = "GET",
        InsertionMode = InsertionMode.InsertAfter,
        UpdateTargetId = "result"
    }))
    {
       <input type="submit" value="Get" />
    }
    <div id="result">
    </div>

Когда я нажал кнопку отправки (какое значение было получено), результаты вернулись, но на другой странице, например http://localhost:57616/Home/showProduct, но я хочу вернуться к результату div на странице индекса.

Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 24 октября 2011

Итак, то, как я справился с этим сам, было примерно таким:

$(document).ready(function () {
var options = {
   target: "#mytargetdiv",
   url: '@Url.Action("Edit", "IceCream")',
};

$("#editIceCreamForm").submit(function () {
   $(this).ajaxSubmit(options);
   return false;
}

// other stuff

});

в других местах, где я хотел выполнять редактирование на месте, я делал бы что-то вроде этого:

<input type="button" id="someid" value="Edit" data-someid="@Model.SomeId"/>

, а затем какой-нибудь ajax, например, так:

$(function () {
   $("#someid".click(function () {
      var theId = $(this).data('someid');
      $.ajax({
         type: "GET",
         data: "id=" + theId,
         url: '@Url.Action("Edit", "Something")',
         dataType: "html",
         success: function (result) {
            $('#targetdiv').html(result);
         }
      });
   });
});

Итак, если вы не заинтересованы в использовании jQuery и хотите использовать материал MS Ajax, вы включаете MicrosoftAjaxФайлы .js и MicrosoftMvcAjax.js на странице?Если у вас их нет, я думаю, что произойдет, если он просто отправит по умолчанию (не Ajax).

...