1
私は一般的な開発とMVCでかなり新しいです。 MVCサイトでリポジトリからスローされた例外を表示しようとしています。エラーメッセージを処理するためにView: "Error"を作成しました。 私のメインコントローラの外観は、次のように私は見えエラーモデルを作成したMVCでキャッチ例外を表示
@model BankMVC.Models.DepositingWithdrawingViewModel
@{
ViewBag.Title = "Withdraw";
}
<h2>Withdraw</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Withdraw from Bank Account</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.BankAccountId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.BankAccountId, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BankAccountId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.BankAccountTypeId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.BankAccountTypeId, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BankAccountTypeId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Balance, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Balance, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Balance, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Amount, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Amount, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Amount, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Withdraw" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index", "BankAccount")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
次のように:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace BankMVC.Models
{
public class ErrorModel
{
public string Error { get; set; }
}
}
どのようにする必要があり、次のように
using BankMVC.Models;
using BankMVC.WithdrawingService;
using Pocos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace BankMVC.Controllers
{
public class WithdrawingController : Controller
{
WithdrawingServiceClient withdrawingClient;
public WithdrawingController()
{
withdrawingClient = new WithdrawingServiceClient();
}
public ActionResult Withdraw(int Id, int TypeId)
{
BankAccount bankAccount = new BankAccount();
bankAccount.BankAccountId = Id;
bankAccount.BankAccountTypeId = TypeId;
DepositingWithdrawingViewModel withdrawViewModel =
new DepositingWithdrawingViewModel();
withdrawViewModel.BankAccountId = bankAccount.BankAccountId;
withdrawViewModel.Balance = bankAccount.Balance;
withdrawViewModel.BankAccountTypeId = bankAccount.BankAccountTypeId;
return View(withdrawViewModel);
}
[HttpPost]
public ActionResult Withdraw(DepositingWithdrawingViewModel withdrawViewModel)
{
BankAccount bankAccount = new BankAccount();
bankAccount.BankAccountId = withdrawViewModel.BankAccountId;
bankAccount.BankAccountTypeId = withdrawViewModel.BankAccountTypeId;
try
{
withdrawingClient.Withdraw(withdrawViewModel.Amount, bankAccount);
return RedirectToAction("Index", "BankAccount");
}
catch (Exception e)
{
return RedirectToAction("Error", new { message = e.Message });
}
}
}
}
私のメインコントローラビューが見えます私のエラー - ビューの外観エラーメッセージを表示するようにします。現在のところ、次のようになります。
@model BankMVC.Models.ErrorModel
@{
ViewBag.Title = "Error";
}
<h2>Error</h2>
明らかになります。