JQuery MultiSelect не работает с MVC, используя бритву - PullRequest
0 голосов
/ 15 февраля 2012

Я пытаюсь использовать множественный выбор для отображения выпадающего выбора, который позволяет множественный выбор с использованием этой библиотеки jquery для множественного выбора .я успешно достигаю без использования главной страницы.Но когда я использую код главной страницы, выдается ошибка («метод не поддерживается»).Я вставляю простой код, который не использует главную страницу, и, пожалуйста, помогите мне, как я использую эту библиотеку jquery, используя главную страницу в бритве 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; }
}

Это идеальное решение, но оно работает без главной страницы.Пожалуйста, предоставьте мне решение, как я использую его, используя главную страницу.

1 Ответ

0 голосов
/ 15 февраля 2012

Я подозреваю, что проблема в том, что не используется @Url.Content(..) для получения пути для остальных файлов js. Вы используете его для jQuery js, почему не для других js-файлов?

Попробуйте использовать @Url.Content(..) для всех файлов js, надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...