Я искал решение, и DotSlashSlash имеет ответ, спрятанный в одном из комментариев!
Для полноты ответа и простейшего решения:
UIImage *myGradient = [UIImage imageNamed:@"textGradient.png"];
myLabel.textColor = [UIColor colorWithPatternImage:myGradient];
Шаблоны Razor выводят текст, который обычно может быть «страницей» (html / css / js), обслуживаемой с типом содержимого text / html. Но вы можете использовать другие типы контента, такие как text / javascript, если хотите.
Сначала создайте действие контроллера, украшенное атрибутом ActionName
:
public class ScriptsController {
[ActionName("model.js")]
public ActionResult ModelJs() {
var model = new Object(); // your actual model here.
return View();
}
}
Затем создайте свое представление, которое аналогично тегу script
на текущей странице:
убедитесь, что вы удалили элемент script со своей текущей страницы.
Затем обратитесь к новому представлению js на своей странице:
<script type="text/javascript" src="@Url.Action("model.js", "Scripts")"></script>
Вы можете создать конструктор для своей модели JavasScript, а затем создать его с помощью бритвенного кода.
Например:
Модель
public class Car{
public string Brand { get; set; }
public string Fuel { get; set; }
}
Файл Javascript в шаблоне модуля, но вы также можете использовать что-то еще:
var car = (function(jsonModel){
var runs = "My " + jsonModel.Brand + " runs on " + jsonModel.Fuel;
return {
Runs : runs
}
});
Вид бритвы
]@model Car
<!--load the javascript file somewhere-->
<script type="text/javascript">
$(function(){
var myFord = new car(@Html.Raw(Json.Encode(@Model)) );
alert(myFord.Runs);
});
</script>
.NET fiddle Я не могу добавить внешний файл javascript, но вы, вероятно, поймете точку
Хотя я должен сказать, что использование @ Html.Raw не Рекомендуется, так как это делает вас уязвимым для атак XSS (читайте больше в Интернете после поиска). Лучше вернуть объект JSON из вашего контроллера.
Редактировать
Вот пример того, как использовать JsonResult на контроллере .Net fiddle
[HttpGet]
public JsonResult Car()
{
return Json(new Car("ford","gasoline"), JsonRequestBehavior.AllowGet);
}
для просмотра бритвы JS, чтобы получить результат json и создайте экземпляр вашего JS-модуля
$(function(){
var model = $.ajax({
url: "@Url.Action("Car","Home")",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
}).done(function(response){
console.log(response);
var myFord = new car(response);
alert(myFord.Runs);
});
});