Как Вы используете usercontrols в asp.net mvc, которые отображают “остров” данных?

Функция успеха в ajax - это функция, запускаемая при успешном выполнении запроса. Поэтому, если вы хотите, чтобы в вашем журнале были результаты вашего успеха, поместите console.log в функцию успеха следующим образом:

$.ajax({
type: 'POST',
url: 'getEnglishWords.php',
success: function(words){
    words = JSON.parse(words);
    for(var i = 0; i < 50; i++) {
        arrayen.push(words[i].en);
    }
    console.log(arrayen.length);

},error: (error) => {
     console.log(JSON.stringify(error));
}
});
9
задан dtc 29 November 2008 в 01:10
поделиться

4 ответа

Существует несколько способов сделать это.

Основной подход

  • Заполните данные для представления в BaseController (событие OnActionExecuting)
  • Запись фильтра пользовательского действия
  • Запись Контроллера Приложения (например, находится в ссылках ниже).

Пример OnActionExecuting будет

   [HandleError]
    public class BaseController : Controller
    {
        CourseService cs = new CourseService();
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            List<Tag> tags = cs.GetTags();
            ViewData["Tags"] = tags;
        }

    }

Можно использовать данные представления "тегов" по любому представлению. Это - просто пример usercontrol, представляемого как содержание стороны.

<div id="sidebar_b">
         <asp:ContentPlaceHolder ID="ContentReferenceB" runat="server" >
             <% Html.RenderPartial("Tags"); %>
         </asp:ContentPlaceHolder>
   </div>

Я нашел, что следующий URL был полезен.

http://weblogs.asp.net/stephenwalther/archive/2008/08/12/asp-net-mvc-tip-31-passing-data-to-master-pages-and-user-controls.aspx

http://blog.matthidinger.com/2008/02/21/ASPNETMVCUserControlsStartToFinish.aspx

http://www.aaronlerch.com/blog/2008/01/26/displaying-foo-on-every-page-of-an-aspnet-mvc-application/

http://blog.wekeroad.com/2008/01/07/aspnet-mvc-using-usercontrols-usefully/

11
ответ дан 4 December 2019 в 14:32
поделиться

Во фьючерсах MVC, доступных на codeplex, содержит расширения RenderAction HtmlHelper. Это позволит Вам создавать контроллер для управления ueser, и этот контроллер заполнит ViewData, используемый пользовательским элементом управления, не имея необходимость обращаться к основному контроллеру, как был предложен.

В Представлении Вы сделали бы

<% Html.RenderAction("Index", "UserControlController") %>

или одна из других перегрузок.

Это создаст экземпляр контроллера, выполнить метод и представить представление пользовательского элемента управления в основном представлении. Основной контроллер представления ничего не должен знать о пользовательском элементе управления или его модели/данных.

3
ответ дан 4 December 2019 в 14:32
поделиться

Осуществите рефакторинг код, который получает данные представления для этого пользовательского элемента управления в свой собственный метод, возможно, даже свою собственную модель (класс). Назовите этот метод от каждого контроллера, который должен заполнить управление и передать результаты в ViewData с известным ключом. Вы могли бы даже хотеть передать тип текущего контроллера к Вашему методу в случае, если он должен знать что данные получить на основе базовой модели для контроллера.

 ViewData["RecentPosts"] = RecentPosts.GetRecentPosts( this.GetType() );

В Вашем управлении получите данные с помощью известного ключа.

0
ответ дан 4 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: