2016-08-30 2 views
1

Поскольку MVC Core не поддерживает @Ajax ... как я могу сделать следующее на моей странице бритвы сейчас?Как заменить @ Ajax.ActionLink в MVC Core

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

Опишите, что вы хотите сделать? –

+0

Я бы обновил содержимое div1 с частичным представлением на основе нажатия кнопки .. вопрос заключается в том, что замена MVC Core для @ Ajax.ActionLink –

+0

Проверьте, что такое сгенерированный html в mvc 5. Ссылка должна быть украшена некоторыми 'data-ajax-', которые вы можете применить в ядре aspnet. – regnauld

ответ

1

Вы не можете обойтись без использования Jquery или Javascript, Вы можете сделать что-то вроде этого, чтобы достичь ваших потребностей.

Если вы не используете 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 содержание с не обновляя страницу.

Смежные вопросы