Site.Masterファイルで部分的なビューをレンダリングしようとしていますが、オブジェクトのインスタンスにオブジェクト参照が設定されていないエラーが発生します。ビューに直接アクセスすると必要な情報が得られますが、HomeControllerからインデックスビューにアクセスするとエラーが発生します。部分ビューには、ログインしたユーザー、部署、および役割が表示されます。これは私のコードです。Site.MasterのMVC部分ビュー
コントローラフォルダ -HomeController.cs -UsersController.cs
Models
-Repository Folder
- UersRepository.cs
-Repository Interface Folder
- IUsers.cs
-Service Folder
- UsersService.cs
- IUserService.cs
-Validation Folder
- IValidationDictionary
- ModelStateWrapper
私は部分的にLoginInfo.ascxと呼ばれ、それが共有フォルダに位置してレンダリングしようとしているビュー。
LoginInfo.csコード:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Users>>" %>
<%@ Import Namespace="TimeAttendanceMVC.Models"%>
<table>
<tr>
<th>
UserName
</th>
<th>
Department
</th>
<th>
UserType
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.DisplayFor(modelItem => item.UserName) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => item.Department) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => item.UserType) %>
</td>
</tr>
<% } %>
</table>
Site.Masterコード:
<% Html.RenderPartial("LoginInfo"); %>
UserController.cs
public class UsersController : Controller
{
//
private IUsersService _service;
//==============================================================================
//==============================================================================
public UsersController()
{
_service = new UsersService(new ModelStateWrapper(this.ModelState));
}
public UsersController(IUsersService service)
{
_service = service;
}
//==============================================================================
//==============================================================================
// GET: /Employee/
//==============================================================================
//==============================================================================
// GET: /Employee/
public ActionResult Index()
{
var model = _service.Return_UserName_Dept();
return View("LoginInfo", model);
}
}
HomeController.cs
public ActionResult Index()
{
//var model = _service.Return_UserName_Dept();
//return View(model);
return View();
}
上記のコードでは、エラーが発生します。私のHomeControllerで2行のコメントを外してモデルをViewに渡すと、正常に動作します。しかし、私のHomeControllerは別のモデルを必要とするので、Viewに2つのモデルをどのように渡しますか?
私が間違っていることは何ですか?私はまだMVCを今でも学んでいるので、これではうまくいきません。どんな助けもありがとう。ありがとう。
:よう
は、その後、あなたのビューでは、あなたが何かをするだろう。<%Html.RenderAction( "LOGININFO"); %>が、別のエラーが発生しました:ハンドラ 'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'の子リクエストの実行中にエラーが発生しました。 – MikeB55
問題を見つけるためにInnerExceptionを見てください。コントローラー名を指定するのを忘れたのかもしれません。 – SLaks
InnerExceptionは次のように言っています:{"パブリックアクションメソッド 'LoginInfo'がコントローラ 'TimeAttendanceMVC.Controllers.HomeController'に見つかりませんでした。私はこれをどのように修正するか分からない。 HomeControllerにも新しいLoginInfoアクションを追加するはずですか?このアクションは、私のUsersControllerにあります。 – MikeB55