使用从ASP.NET MVC中的模型检索的参数调用javascript函数

时间:2009-08-28 00:56:12

标签: javascript asp.net-mvc parameters

我有一个JavaScript函数,我需要在我的body标签内调用。我的JavaScript函数如下所示:

function NewExistingPicture(pictureName) {

    //code for JavaScript function
}

这就是我在HTML中尝试做的事情:

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

显然这不起作用,但我不知道如何从模型中传递函数信息。

3 个答案:

答案 0 :(得分:2)

试试这个:

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

(.Replace()将转义字符串中的任何单引号,因此您创建的字符串将有效)

答案 1 :(得分:0)

我认为你需要做一些事情,比如编写一个包含所有javascript的完整脚本部分,然后在文档完成加载时运行。

我认为这也可能最好从控制器代码中写出来,这样你就可以设置一个变量,然后将其插入到页面中。

<%= Model.Javascript %>

并在控制器中;

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

上述内容完全没有经过测试,但无论如何我都应该认真。

答案 2 :(得分:0)

<%@ Import Namespace="System.Web.Script.Serialization" %>
<% var js = new JavaScriptSerializer(); %>
...
NewExistingPicture(<%= Html.Encode(js.Serialize(Photo.PhotoName)) %>)