jquery multiSelect不使用razor使用MVC

时间:2012-02-15 15:36:40

标签: jquery asp.net-mvc-3 jquery-ui razor

我尝试使用multiselect显示下拉选择,允许使用该库jquery for mulitselect进行多次选择。我没有使用母版页就成功实现了。 但是当我使用母版页代码时给我错误。(“不支持方法”)。 我正在粘贴不使用母版页的简单代码,请帮助我如何使用MVC剃刀中的母版页使用该jquery库。

以下是观点。

@{
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; }
}

这是完美的解决方案,但这适用于母版页。 请告诉我如何使用母版页来使用它。

1 个答案:

答案 0 :(得分:0)

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

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