Нокаут с ASP.NET MVC4

Попытка начать использовать Нокаут с помощью ASP.NET MVC4. Посмотрите несколько примеров и встретите следующие вопросы.

  1. Сегодня я пишу свой бэкэнд моделей просмотра, я могу его полностью заменить с моделью просмотра с нокаутом на стороне клиента?

  2. Есть ли что-то вроде DataAnnotations в Knockout для проверка?

0
nl ja de

3 ответы

  1. Да, вы удаляете вид сервера и просматриваете модели. Теперь все находятся на клиенте.

  2. См. Проверка нокаута

Кроме того, вы можете проверить службы данных OData/WCF ( http://blogs.msdn.com/б/astoriateam/). Это в основном дает вам модель и контроллер. При таком подходе вы получаете сервер, обслуживающий только статические HTML-страницы и данные модели в виде вызовов AJAX. И он также поддерживает «пейджинг» данных.

ИМХО, это путь будущего.

Другие интересные ссылки:

3
добавлено
Если я использую automapper для сопоставления модели домена для viewmodel и viceverca, тогда нужно, чтобы Format.String и другие вещи понравились, что в viewmodel, затем передайте ее в режим просмотра нокаута ??
добавлено автор Nils Anders, источник
вы удалите модели просмотра сервера . В самом деле? Я очень сильно не согласен с этим предложением.
добавлено автор Darin Dimitrov, источник
Если вы перейдете в OData/WCF, где ASP.NET MVC появится на картинке? Я думал, что OP спрашивает об использовании knockoutjs с ASP.NET MVC.
добавлено автор Darin Dimitrov, источник
@DarinDimitrov, если вы перейдете с OData/WCF Data Services и Knockout, вам не нужно писать много кода вообще.
добавлено автор Richard Schneider, источник
@DarinDimitrov очень хороший вопрос. Вам это не нужно! Это позволяет переместить весь код пользовательского интерфейса клиенту, где он принадлежит.
добавлено автор Richard Schneider, источник
@JoelCochran обновил ответ на ваши вопросы об аутентификации и маршрутизации. Что вы подразумеваете под Организацией? Это где вы размещаете все файлы .cs? Что это за проблема?
добавлено автор Richard Schneider, источник
Может также помочь проверить Нокаут MVC Лицензия MIT
добавлено автор Vishnoo Rath, источник
MVC по-прежнему играет важную роль в таких вещах, как аутентификация, маршрутизация и организация. Ваши MVC-контроллеры и методы могут быть намного проще, но это не делает MVC ненужным.
добавлено автор Joel Cochran, источник
@RichardSchneider - Это не проблема, просто полезные вещи, которые MVC дает вам из коробки. По организации я имею в виду такие вещи, как Areas и файловая организация. Опять же, не «проблема», просто что-то мне нравится с MVC. Кроме того, вы можете делать сайты, ориентированные на AJAX, и по-прежнему использовать такие вещи, как ViewBag и ViewModels, когда это имеет смысл. Комбинация - лучшее из обоих миров.
добавлено автор Joel Cochran, источник

You can use this library or this

или использовать этот samole

<script id="customMessageTemplate" type="text/html">
    
</script>
User: errors <div data-bind='validationOptions: { messageTemplate: "customMessageTemplate" }'> </div>
<button type="button" data-bind='click: submit'>Submit</button>

<button type="button" data-bind='click: requireLocation'>Make 'Location' required</button> ko.validation.rules.pattern.message = 'Invalid.'; ko.validation.configure({ registerExtenders: true, messagesOnModified: true, insertMessages: true, parseInputAttributes: true, messageTemplate: null }); var captcha = function (val) { return val == 11; }; var mustEqual = function (val, other) { return val == other(); }; var viewModel = { firstName: ko.observable().extend({ minLength: 2, maxLength: 10 }), lastName: ko.observable().extend({ required: true }), emailAddress: ko.observable().extend({ //custom message required: { message: 'Please supply your email address.' } }), age: ko.observable().extend({ min: 1, max: 100 }), location: ko.observable(), subscriptionOptions: ['Technology', 'Music'], subscription: ko.observable().extend({ required: true }), password: ko.observable(), captcha: ko.observable().extend({ //custom validator validation: { validator: captcha, message: 'Please check.' } }), submit: function() { if (viewModel.errors().length == 0) { alert('Thank you.'); } else { alert('Please check your submission.'); viewModel.errors.showAllMessages(); } } }; viewModel.confirmPassword = ko.observable().extend({ validation: { validator: mustEqual, message: 'Passwords do not match.', params: viewModel.password } }), viewModel.errors = ko.validation.group(viewModel); viewModel.requireLocation = function() { viewModel.location.extend({ required: true }); }; ko.applyBindings(viewModel);
0
добавлено

Knockout.js - отличная библиотека. Но если вы спросите людей, что использовать нокаутом или угловатым. Большинство из них скажут вам, что Angular.js лучше, хотя они очень похожи.

Я использую нокаут в своих проектах. И есть много вещей, которые могут упростить ваше развитие. Например. Я использую только проверку на стороне сервера. Когда пользователь нажимает «submit», мой JavaScript собирает модель и отправляет ее контроллеру (асинхронно AJAX). Контроллер имеет валидацию, и если проверка не выполняется, ответом будет HTTP: 500, а тело будет структурой результатов проверки, которая отображает все ошибки в правильных местах в HTML.

С точки зрения пользователя это похоже на проверку на стороне клиента. Вы можете увидеть, как это работает в этом примере: Создать Пример заказа (Upida.Net) .

0
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)