2016-05-13 6 views
0

Я пытаюсь использовать новый asp.net 5 (теперь ядро ​​1.0) на «rc1-final», и я не нахожу старый класс AjaxHelper, который до Asp.Net 4 находился в dll system.web.mvc.Где находится «system.web.mvc.ajaxhelper» в asp.net core 1.0

Есть ли пакет nuget, содержащий этот класс? Или любой другой, который заменит это?

Я использую «DNX 452» и не претендую на то, чтобы перейти к «core 1.0»/«dnx 5» прямо сейчас.

+1

https://github.com/aspnet/ Mvc/issues/2015 пока не поддерживается, нет плана, насколько я могу видеть – MarkB

ответ

2

Пользователи mvc ajaxhelpers в основном просто настраивают атрибуты data-ajax- *, которые используются jquery ненавязчивым ajax. Вы можете легко и чисто сделать это в ASP.NET Core, просто добавив атрибуты в разметку или хотите, чтобы вы были в этом заинтересованы, вы можете реализовать taghelpers. Например, в старшем MVC 5 я использовал ajaxhelper для реализации настраиваемого модального диалога bootstrap. Когда я пошел в порт, чтобы ASP.NET Ядра я нашел, как вы что ajaxhelpers не существует, так что я реализовал taghelper, что добавляет Аякса атрибуты, как это:

/// <summary> 
/// this taghelper detects the bs-modal-link attribute and if found (value doesn't matter) 
/// it decorates the link with the data-ajax- attributes needed to wire up the bootstrap modal 
/// depends on jquery-ajax-unobtrusive and depends on cloudscribe-modaldialog-bootstrap.js 
/// </summary> 
[HtmlTargetElement("a", Attributes = BootstrapModalLinkAttributeName)] 
public class BootstrapModalAnchorTagHelper : TagHelper 
{ 
    private const string BootstrapModalLinkAttributeName = "bs-modal-link"; 

    public BootstrapModalAnchorTagHelper() : base() 
    { 

    } 


    public override void Process(TagHelperContext context, TagHelperOutput output) 
    { 
     // we don't need to output this attribute it was only used for matching in razor 
     TagHelperAttribute modalAttribute = null; 
     output.Attributes.TryGetAttribute(BootstrapModalLinkAttributeName, out modalAttribute); 
     if (modalAttribute != null) { output.Attributes.Remove(modalAttribute); } 

     var dialogDivId = Guid.NewGuid().ToString(); 
     output.Attributes.Add("data-ajax", "true"); 
     output.Attributes.Add("data-ajax-begin", "prepareModalDialog('" + dialogDivId + "')"); 
     output.Attributes.Add("data-ajax-failure", "clearModalDialog('" + dialogDivId + "');alert('Ajax call failed')"); 
     output.Attributes.Add("data-ajax-method", "GET"); 
     output.Attributes.Add("data-ajax-mode", "replace"); 
     output.Attributes.Add("data-ajax-success", "openModalDialog('" + dialogDivId + "')"); 
     output.Attributes.Add("data-ajax-update", "#" + dialogDivId); 

    } 
} 
+0

Да, я обнаружил, что это единственный из двух. Но вместо того, чтобы наследовать от Taghelper (на основе моих старых помощников), я использую расширение HtmlHelper. В чем преимущества TagHelper? –

+0

Если вы Google для «преимуществ taghelpers», вы найдете хорошую информацию. в основном это более чистая разметка и разделение разметки с C# более чисто против HtmlHelpers. хороший пример здесь http://www.davepaquette.com/archive/2015/05/11/cleaner-forms-using-tag-helpers-in-mvc6.aspx –

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