Xcode 8 • Swift 3
Ответ Leo Dabus является потрясающим! Я просто хотел предоставить решение «все-в-одном»:
let url = URL(string:
"http://www.apple.com/euro/ios/ios8/a/generic/images/og.png")
let task = URLSession.shared.dataTask(with: url!) { data, response, error in
guard let data = data, error == nil else { return }
DispatchQueue.main.async() { // execute on main thread
self.imageView.image = UIImage(data: data)
}
}
task.resume()
Для реализации пользовательского элемента управления, Вы делаете следующий вызов:
<% Html.RenderPartial("~/Views/Shared/MyControl.ascx", {data model object}) %>
Можно также видеть более старый синтаксис, который с PR5 больше не допустим
<%= Html.RenderUserControl("~/Views/Shared/MyControl.ascx", {data model object}) %>
Необходимо будет всегда волноваться о повреждении кода при перемещении от Веб-форм до MVC, однако команда MVC ASP.NET сделала отличную работу для уменьшения проблем.
Да, можно сделать RenderPartial. Это - хорошее начало. Но в конечном счете этим парням будут нужны логика и другой материал типа контроллера. Будьте в поисках реализации подконтроллера от команды платформы. Должно также быть что-то в MvcContrib скоро. Или самокрутка.
Править: Я просто отправил об этом здесь: http://mhinze.com/subcontrollers-in-aspnet-mvc/
Как предложенный Nick, Вы действительно сможете представить свои пользовательские элементы управления, но очевидно цикл страницы, pagestate и обратная передача от традиционных Веб-форм ASP не будут больше работать, таким образом делая Ваши средства управления, скорее всего, бесполезными.
Я думаю, что необходимо будет переписать большинство сложных средств управления для портирования веб-сайта на MVC, в то время как простые средства управления, которые, например, обеспечивают только форматирование и не имеют никакого состояния обратной передачи, должны просто работать. Код, предоставленный Nick, будет просто работать в этом случае.
И о совместном использовании между большим количеством проектов: Я думаю, что средства управления будут больше похожи "на допускающие повторное использование представляющие HTML компоненты", которые могут быть совместно использованы через веб-сайт, а не "компоненты повторно используемого кода" с логикой (как средства управления WebForms). Ваша веб-логика/должна быть в контроллерах страниц а не в средствах управления HTML. Поэтому совместное использование средств управления через большее количество проектов не будет так же полезно как в случае WebForms.