MVC3 подтвердите имя и предоставьте список выборов в форме - PullRequest
1 голос
/ 30 ноября 2011

Я очень новичок в MVC и пытаюсь найти дорогу. Я также кодирую на VB, поэтому возникают некоторые трудности, так как большинство примеров на C #. Но я продал ... однако, я в настоящее время полностью застрял на этом. Я искал несколько дней и перепробовал столько вариаций, что даже не помню половину из них.

Это то, что я пытаюсь выполнить: у меня есть форма для ввода действия по обслуживанию сотрудника (то есть на борту, завершение, перевод и т. Д.). В форме пользователь введет имя и фамилию менеджера. Мне нужно проверить это имя по AD и, если оно не найдено, вернуть выпадающий список возможных совпадений для их выбора.

Я пытаюсь сделать это с помощью Ajax и частичного просмотра, но не добился хороших результатов. В настоящее время я получаю сообщение об ошибке:

There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'Emp_Mgr_Name'

Он также пытается загрузить это при первоначальной загрузке формы - я не хочу, чтобы он делал это до тех пор, пока они фактически не введут имя менеджера в форме.

Вот что у меня так далеко - где я иду не так, или то, что я пытаюсь сделать, не представляется возможным, и есть ли у кого-нибудь какие-либо предложения о том, как я могу это сделать? Любая помощь будет принята с благодарностью!

В моем основном виде это ссылки на мои скрипты:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"          type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>

А вот скрипт для проверки имени менеджера и возврата списка (это вызывает и вызывает действие в моем контроллере):

$("#Emp_Mgr_Last_Name").change
  (function () 
  {
    $.getJSON("/EmpInfo/ValidateMgrName/" + $("#Emp_Mgr_First_Name").attr("value") + "/" + $("#Emp_Mgr_Last_Name").attr("value"),
    function (data) 
    {
      $("#ValidateMgrName").html(data)
    });
  });

Вот код в моем контроллере (strADList содержит список имен при запуске):

    <HttpGet()>
    Public Function ValidateMgrName(ByVal Emp_Mgr_First_Name As String, ByVal Emp_Mgr_Last_Name As String) As ActionResult
        Dim strADList As New List(Of String)
          If Request.IsAjaxRequest Then

            Dim strADInfo = GetADInfo(Emp_Mgr_First_Name.Trim, Emp_Mgr_Last_Name.Trim)
            If strADInfo <> String.Empty Then

            Else
                strADInfo = GetADList(Emp_Mgr_First_Name.Trim, Emp_Mgr_Last_Name.Trim, strADList)
             End If

            Return Json(New With {.success = True, .data = strADList, JsonRequestBehavior.AllowGet})
        End If


    End Function

На моем основном экране я пытаюсь выполнить замену кода с частичным представлением:

    <div id="ValidateMgrName">@Html.Partial("ValidateMgrName")</div>

И вот что я имею в частичном представлении:

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