Вызов функции JavaScript с параметром, полученным из модели в ASP.NET MVC - PullRequest
1 голос
/ 28 августа 2009

У меня есть функция JavaScript, которую мне нужно вызывать внутри тегов тела. Моя функция JavaScript выглядит так:

function NewExistingPicture(pictureName) {

    //code for JavaScript function
}

И вот что я пытаюсь сделать в HTML:

Existing Photos:
<% foreach (var Photo in Model.ProductThumbnails) 
   { %>
      NewExistingPicture(<%= Html.Encode(Photo.PhotoName) %>) 
<% } %>

Очевидно, что это не сработает, но я не знаю, как передать функции информацию из модели.

Ответы [ 3 ]

2 голосов
/ 28 августа 2009

Попробуйте это:

<script type="text/javascript">
<% foreach (var Photo in Model.ProductThumbnails) 
   { %>
      NewExistingPicture('<%= Photo.PhotoName.Replace(@"'", @"\'") %>'); 
<% } %>
</script>

(.Replace () должен экранировать любые одинарные кавычки в вашей строке, поэтому созданная вами строка будет действительной)

0 голосов
/ 28 августа 2009
<%@ Import Namespace="System.Web.Script.Serialization" %>
<% var js = new JavaScriptSerializer(); %>
...
NewExistingPicture(<%= Html.Encode(js.Serialize(Photo.PhotoName)) %>)
0 голосов
/ 28 августа 2009

Я думаю, что вам нужно сделать что-то вроде написания полного раздела скрипта со всем javascript, который затем запускается после завершения загрузки документа.

Я думаю, что это также может быть лучше всего записано из кода контроллера, чтобы вы могли установить переменную и затем вставить ее на страницу.

<%= Model.Javascript %>

и в контроллере;

ActionResult MyAction()
{
  myModel.Javascript = "<script>alert(9);</script";
  return View(myModel);
}

Вышеприведенный текст полностью не проверен, но в любом случае должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...