如何将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世界中实现这一目标?
答案 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>