HTTP.Post を使用してコントローラー クラスのメソッドと通信する html フォームがあります。このメソッドを表す特定のビューはありません。相対 cshtml ビュー クラスのない HttpPost ActionResult だけです。このメソッドを呼び出す私のコードは次のとおりです。
@using (Html.BeginForm("SaveCallout", "SaveCallout"))
{
<div class="editor-field">
@Html.DropDownListFor(m => m.ClientId, new SelectList(Model.Clients, "ClientId", "Name"))
@Html.ValidationMessageFor(model => model.ClientId)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.Description, new { @id = "descriptionText" })
@Html.ValidationMessageFor(model => model.Description)
</div>
<input class="btn btn-primary btn-large" style="float: left; margin-right: 10px;" type="submit" value="Create Callout" />
<a class="btn btn-primary btn-large" href="@Url.Action("EmptyThisCallout", "Callout", null)" id="EmptyCart" style="float: left;">Clear Callout</a>
}
そして、私のコントローラーメソッドは次のとおりです。
[HttpPost]
public ActionResult SaveCallout(CalloutViewModel viewModel)
{
var Callout = new Callout();
TryUpdateModel(Callout);
try
{
Callout.ClientId = viewModel.ClientId;
Callout.CalloutDate = DateTime.Now;
//Save invoice
proent.Callouts.Add(Callout);
proent.SaveChanges();
//Process the invoice
var tempCallout = CalloutLogic.GetCallout(this.HttpContext);
tempCallout.CreateCallout(Callout);
return RedirectToAction("Complete", new { id = Callout.CalloutId });
}
catch
{
//Invalid - redisplay with errors
return View(Callout);
}
}
これは以前も同様のコンテキストで問題なく機能していましたが、「ビュー 'SaveCallout' またはそのマスターが見つからないか、検索された場所をサポートするビュー エンジンがありません」というエラー メッセージが表示されるようになりました。ビューを検索していることは理解していますが、このプロセスでビューが必要になったことはありません。
誰かが私が間違っていることを見ることができますか? 多分私は私のコードをもっと投稿する必要がありますか?