不是我想要PartialViewResult的方式

时间:2011-10-24 14:37:54

标签: asp.net-mvc asp.net-ajax product using asp.net-mvc-partialview

我尝试了一些事情。我提前为我的英语道歉。

我的行动代码;

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>

当我按下提交按钮(值为get)时,结果返回但在另一个页面中,如http://localhost:57616/Home/showProduct,但我想返回索引页面中的结果div。

任何人都可以帮助我?

1 个答案:

答案 0 :(得分:1)

所以,我自己处理的方式是这样的:

$(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)提交。