如何将动态Javascript添加到<a> tag in MVC4</a>

时间:2013-03-30 04:03:46

标签: javascript asp.net-mvc-4

如何将JavaScript动态href属性应用于MVC中的anchore标记。我的要求是点击<a>打开窗口。打开窗口我需要从控制器端传递某些参数,如URL或用户是否已登录等。我在Web窗体中开发了类似的代码,如下面的代码所示

代码背后:

if (User!= null) {
                        AspHyperLink.Attributes.Add("href", "javascript: openWindows('" + anchoreLink.ClientID + "', '" + URL +
                                                                         "', null, 'width=952,height=600,left=25,top=50,resizable=yes,scrollbars=no', '" +
                                                                         guestUser.ToString().ToLower() + "','" + DelayTime + "','" + SomimageImage.ClientID + "','" +
                                                                         imgfadedPath + "','" + imgpath + "');");

我如何在MVC世界中实现这一目标?

2 个答案:

答案 0 :(得分:0)

将所有参数通过模型传递到视图,并在锚标记的onclick事件上调用javascript方法。如果有多个这样的锚点,那么在模型中使用proprieties,否则你可以使用ViewBag。 代码如下:

<a href="javascript:void(0)" onclick="OpenWindow('@Model.ClientID','@Model.URL','@Model.guestUser', '@Model.DelayTime',     '@Model.SomeimageClientId','@Model.imgfadedPath','@Model.imgpath')"> Click Here</a>



<script type="text/javascript">
function OpenWindow(ClientID,URL,guestUser, DelayTime, SomeimageClientId,imgfadedPath,imgpath)
{
      //Open Window Here.
}

</script>

答案 1 :(得分:0)

在MVC中,您的View会填充JavaScript所需的所有参数。您的控制器应该将View所需的所有变量(如clientId,imgpath,imgfadedPath等)收集到模型中(或者如果你是懒惰的,则收集到ViewBag中)。然后,在视图中,您可以使用这些参数来创建标记:

以下是Razor视图引擎的示例:

<a href="javascript: openWindows('@Model.clientId, @Model.URL, ....')">click here</a>