コントローラは次のとおりです。
public class HomeController : Controller
{
public ActionResult LogOn()
{
return View();
}
[HttpPost]
public ActionResult LogOn(string captcha)
{
if (captcha == HttpContext.Session["captcha"].ToString())
return Content("ok");
else
return Content("failed");
}
public CaptchaImageResult ShowCaptchaImage()
{
return new CaptchaImageResult();
}
}
ビューは次のとおりです。
<%using (Html.BeginForm())
{ %>
<p><img src="/Home/ShowCaptchaImage" /></p>
<p>Please enter the string as shown above:</p>
<p><%= Html.TextBox("captcha")%></p>
<p><input type="submit" value="Submit" /></p>
<% } %>
すべてがうまくいき、キャプチャ画像がレンダリングされます(CaptchaImageResultは応答ストリームにjpgを書き込みます)。しかし、レイザービューエンジンを使用すると、キャプチャ画像がレンダリングされません。
それを修正する方法は?
そしてもう1つ:キャプチャを表示するのに良い方法ですか?
後で編集:<img src=@Href("../../Home/ShowCaptchaImage") />正常に動作します。問題は、最初の例ではVisual Studio Developmentサーバーを使用し、2番目の例ではIISを使用していたためでした。