1

インデックスアクションの場合、Guidを渡す必要がありますが、編集または削除アクションをチェックしているため、nullにする必要があります。

私はこのように使用しましたが、コンパイルエラーが発生します:Guidはnullにすることはできません。コンパイル時定数である必要があります。またはランタイムエラー:

パラメータディクショナリには、'Mapping.Controllers.HomeController'のメソッド'System.Web.Mvc.ActionResult Index(System.String、System.Guid)'のnull許容型ではないタイプ'System.Guid'のパラメータ'uid'のnullエントリが含まれています'。オプションパラメータは、参照型またはnull許容型であるか、オプションパラメータとして宣言されている必要があります。

public ActionResult Index(string userAction, Guid uid = new Guid() )
        {
----
----
}
4

4 に答える 4

1

呼び出し元のビューで条件を評価し、編集用と削除用の 2 つの異なるアクションを呼び出す必要があります。そのようなもの(発信者のビューで):

@if (existGuid)
{
    @Html.ActionLink("Edit", "Edit", new {myGuid = guid})
}
else
{
     @Html.ActionLink("Delete", "Delete")
}

そして、コントローラーには、別のアクションがあります。

public ActionResult Edit(Guid myGuid)
{
    // do something here
}
public ActionResult Delete()
{
    // do something here
}

パラメータを渡さずに何かを削除する方法がわからなくても...

于 2012-04-19T13:36:58.400 に答える
0

アクション メソッド パラメーターのGuid.Empty代わりnullに値を渡すカスタム モデル バインダーを作成できます。Guid?

于 2012-04-19T14:06:06.117 に答える