jQuery在MVC3中常用的局部视图中

时间:2012-01-04 23:26:02

标签: jquery asp.net-mvc-3

我不确定最好的方法。

基本上,我有一个局部视图,可以多次放在页面上,在局部视图中,它包含jQuery,它可以绑定某些事件,以查找页面上可能发生的事情。例如,按钮点击等。

现在,使用jQuery选择器,您可以使用ID来定位页面上的内容(我不能这样做,因为页面上的多个内容将具有相同的ID)。你也可以使用类名来选择东西,但这也不会起作用,因为对于每个局部视图,它们都会相互瞄准,这是不可能发生的。

我需要每个jQuery只能从它自己的局部视图中选择一些东西。我该怎么做?

我只能想到一种方法,而且看起来有点像黑客。但我基本上可以创建一个包含字符串的模型,该字符串将是包围局部视图的容器的选择器。然后在视图中它将使用选择器以及它将正常使用的普通类名称。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我会确保你的部分视图的内容包含在某种独特标记的div中(无论是id还是class或者其他什么)。将范围限制为该id。

我想我可能会将Id定义为部分顶部的var myId = Guid.NewGuid().ToString("N");,并确保部分内容内容包含在<div id="@myId">之类的内容中...然后在您的jquery中使您的选择器将范围限制为@myId

答案 1 :(得分:0)

我认为这是一种更简单的方法! 这是关于.parents()jQuery方法,你可以找到点击按钮的父级或等等。

这样做有效:

  1. 您的局部视图必须包含具有特定ID的div(例如“pView”),其中包含所有其他元素
  2. 在局部视图中,为按钮指定一个id(例如“btnDelete”)
  3. 像这样编写脚本:

    $(document).ready(function(){

    $("#pView #btnDelete").click(function() {
        var partialView = $(this).parents("#pView");
    
        // Now you detect what pView should be deleted!
        // this.parents("#pView") means select the parent with id = "pView"
        // ...
    
    });
    

    });