0

呼び出されたときにすべての Active Directory ユーザー名を返す新しい Action メソッドを作成したいと考えています。asp.net mvc アプリケーションとアクティブ ディレクトリは、同じドメイン内にあります (現在、同じ開発マシン内にあります)。そこで、次のアクション メソッドを定義しました。

public ViewResult Details()
        {
 var c = repository.GetUserDetails3();
return View("Details2",c); }

および次のリポジトリ メソッド:-

public DirectoryEntry GetUserDetails3()
        {   DirectoryEntry de = new DirectoryEntry();
            using (var context = new PrincipalContext(ContextType.Domain, "WIN-SPDEV.com")){using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
                {foreach (var result in searcher.FindAll())
                    {de = result.GetUnderlyingObject() as DirectoryEntry; }}}
return de; }

および次のモデル クラス:-

public class DirectoryUser
    {public Nullable<Guid> Guid { get; set; }
        public string Name { get; set; }
        public string Username { get; set; }
}}

そして、私が持っているビューで:-

@model IEnumerable<TMS.Models.DirectoryUser>

@{
    ViewBag.Title = "Details2";
}

<h2>Details2</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Guid)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Username)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Guid)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Username)
        </td>

しかし、アクションメソッドを呼び出すと、次のエラーが発生しました:-パラメーターディクショナリには、null 非許容型のパラメーター 'id' の null エントリが含まれています

ディクショナリに渡されたモデル アイテムのタイプは 'System.DirectoryServices.DirectoryEntry' ですが、このディクショナリにはタイプ 'System.Collections.Generic.IEnumerable`1[TMS.Models.DirectoryUser]' のモデル アイテムが必要です。

4

1 に答える 1

0

このアクションには、次のようなリンクが必要です。

/CurrentController/Details?id=1

したがって、たとえば、次のようにActionLinkを記述できます。

 <a href="@Url.Action("Details", "ControllerName", new { id = 1})" role="button" data- toggle="modal">
于 2013-07-14T16:25:49.073 に答える