Вы можете создать конструктор для вашей модели 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
}
});
Razor view
@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);
});
});