如何替换@Ajax.ActionLink在MVC核心



由于MVC Core不支持@Ajax…我现在如何在我的剃刀页面做以下的事情?

@Ajax.ActionLink("All","All",new AjaxOptions() {HttpMethod="GET",UpdateTargetId="div1",InsertionMode=InsertionMode.Replace})
<div id ="div1">
</div>

您不可能不使用JqueryJavascript ,您可以这样做来实现您的需求。

如果你没有使用Jquery,请下载最新的Jquery到你的项目。

<div id ="div1">
</div>

首先在Jquery中添加这个点击事件,

$("#div1").click(function) {
        $.ajax({
            type: "POST",
            url: "/Controller/getData/",
            success: function (data) {
                $("#div1").empty();
                $("#div1").append(data.Html);
            },
            error: function (e) {
            }
       })
   }
获取HTML:
[HttpPost]
public ActionResult getData(PartnerDetail partner)
{
    // Your Logical Stuff..
    string viewName = "_childDiv"; // Specify fully qualified path if different Folder.
    string htmlData = RenderPartialView(viewName, modelData);
    return Json(new
    {
        Html = htmlData,
        SomeExtraData = true
    });
}
public string RenderPartialView(string viewName, object Model)
{
    string htmlData = "";
    if (string.IsNullOrEmpty(viewName))
        viewName = ControllerContext.RouteData.GetRequiredString("action");
    ViewData.Model = Model;
    using (StringWriter sw = new StringWriter())
    {
        ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        htmlData = sw.GetStringBuilder().ToString();
    }
    return htmlData;
}

它将刷新您的div1内容,而不刷新页面。

最新更新