2012-02-15 48 views
0

我尝试使用multiselect来显示下拉选择,允许使用该库的多个选择jquery for mulitselect。我成功实现,而无需使用母版页。 但是,当我使用母版页码给我错误(“方法不支持”)。 我粘贴不使用母版页和任何人的简单代码,请给我帮助,我如何使用MVC剃须刀中的母版页使用该jQuery库。jquery multiSelect不使用剃刀使用MVC

这里是视图。

@{ 
Layout = null; 
} 
@using LST.EMOTS.DynamicForms.Web.Models 
<!DOCTYPE html> 
<html> 
<head> 
<title>Index1</title> 
<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script> 
<script src="../../Scripts/jquery.ui.widget.min.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery.multiSelect.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery.bgiframe.min.js" type="text/javascript"></script> 
<link href="../../Content/jquery.multiSelect.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript"> 


    $(document).ready(function() { 
     $("#control_3").multiSelect(); 
    }); 
    function change1() { 
     alert('this is called first'); 
     $('#hfHiddenfield').val($("#control_3").selectedValuesString()); 
     alert($('#hfHiddenfield').val()); 
    } 
</script> 
</head> 
<body> 
<div> 
     @using (Html.BeginForm()) 
    { 

     <select id="control_3" name="control_3[]" multiple="multiple" class="multiSelect" > 
      <option value=""></option> 
      @foreach (Item itm in ViewBag.objectData) 
      { 

      <option value="@itm.Id" >@itm.Name</option> 
      } 

     </select> 
     <input type="hidden" value="" name="crtrlValues" id ="hfHiddenfield" /> 
     <input type="submit" value="GO" onclick="change1()" /> 

    } 
</div> 
</body> 
</html> 

这里是控制器。

public class HomeController : Controller 
{ 

    [HttpGet] 
    public ActionResult Index1() 
    { 
     var model = new MyModel 
     { 
      SelectedItemIds = new[] { 2, 3 } 
     }; 
     MyModel modelitesm = new MyModel(); 
     ViewBag.objectData = modelitesm.AvailableItems; 
     return View(); 

    } 

    [HttpPost] 
    public ActionResult Index1(string crtrlValues) 
    { 
     var model = new MyModel 
     { 
      SelectedItemIds = new[] { 2, 3 } 
     }; 
     MyModel modelitesm = new MyModel(); 
     ViewBag.objectData = modelitesm.AvailableItems; 
     return View(); 

    } 

} 

这里是模型。

public class MyModel 
{ 
    public IEnumerable<int> SelectedItemIds { get; set; } 
    public IEnumerable<Item> AvailableItems 
    { 
     get 
     { 
      return new[] 
     { 
      new Item { Id = 1, Name = "Item 1" , isSeleced=false }, 
      new Item { Id = 2, Name = "Item 2" ,isSeleced=true}, 
      new Item { Id = 3, Name = "Item 3",isSeleced=false } 
     }; 
     } 
    } 
} 

public class Item 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public bool isSeleced { get; set; } 
} 

这是一个完美的解决方案,但这适用于无主页面。 请提供我soltuion,我如何使用它的母版页。

回答

0

我怀疑问题是没有使用@Url.Content(..)来获取其余js文件的路径。你用它为jQuery js为什么不用于其他js文件?

尝试使用@Url.Content(..)所有的js文件,希望它可以解决您的问题。

+0

我也尝试在我的主人和其他页面上,但它不能工作... – 2012-02-15 15:56:41

+0

因为你使用MVC尽量避免使用相对路径,所以总是使用'@ Url.Content(..)'得到资源的路径。 – ShankarSangoli 2012-02-15 16:07:28

+0

我也这样做了,任何一个PLZ都会为我提供解决方案,为什么这不能使用母版页。并假设使用@ url.Content ..... – 2012-02-15 16:11:44