【问题标题】:How to replace @Ajax.ActionLink in MVC Core [duplicate]如何在 MVC Core 中替换 @Ajax.ActionLink [重复]
【发布时间】:2016-08-30 12:11:43
【问题描述】:

由于 MVC Core 不支持 @Ajax...我现在如何在我的 razor 页面中执行以下操作?

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

【问题讨论】:

  • 描述你想做什么?
  • 我会用基于按钮单击的部分视图刷新 div1 内容。问题是 @Ajax.ActionLink 的 MVC Core 替代品是什么
  • 查看mvc 5中生成的html是什么。链接应该用一些data-ajax-属性修饰,你可以在aspnet core中应用。
  • 谢谢Shyju!我在您的链接中找到了答案。

标签: asp.net-mvc razor asp.net-core-mvc


【解决方案1】:

你不能不使用JqueryJavascript,你可以这样做来满足你的需求。

如果您没有使用Jquery,请在您的项目中使用Download Latest 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 内容,而不刷新页面。

【讨论】:

    猜你喜欢
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    相关资源
    最近更新 更多