컨트롤러는 다음과 같습니다면도기 가상 경로 문제
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를 기록). 그러나 면도기 뷰 엔진을 사용하면 캡쳐 이미지가 렌더링되지 않습니다.
문제를 해결하는 방법은 무엇입니까?
그리고 한 가지 더 : captcha를 표시하는 좋은 방법입니까?
나중에 편집 : <img [email protected]("../../Home/ShowCaptchaImage") />
이 정상적으로 작동합니다. 그것은이 브라우저의 루트에서 /Home/ShowCaptchaImage
를 요청하는 원인이 있기 때문에 첫 번째 예제에서 나는 비주얼 스튜디오 개발 서버를 사용하고 두 번째에 내가 사용하던 IIS
면도기 뷰 엔진을 사용할 때 반환되는 Html은 무엇입니까? –