2015-08-26 3 views
1

Все работает хорошо, за исключением того, что изображение не освежает при смене источника, используя jquery при попытке нового captcha, всегда нужно обновить страницу, а затем изображение обновляется.Captcha image custom не обновляется в mvc

CSHTML:

<p> 
<img id="captchaimage" src="/User/ShowCaptchaImage" /> 
<a href="javascript:;" class="f-captcha" title="refresh captcha"><span class="icon-f-reset"></span><span>Try New Captcha</span></a> 
</p> 

Я использую класс Пользовательские Captcha с унаследуют ActionResult. и ExecuteResult как:

C#:

 public override void ExecuteResult(ControllerContext context) 
     { 
       // Create image code here , i have implemented. 

       //and add response as: 
       HttpResponseBase response = context.HttpContext.Response; 
       response.ContentType = "image/GF"; 
       bmp.Save(response.OutputStream, ImageFormat.Gif); 
       bmp.Dispose(); 
       g.Dispose(); 
     } 

Jquery:

$(document.body).on("click", ".f-captcha", function() { 
    $('#captchaimage').attr('src', '/User/ShowCaptchaImage'); 
}); 

Но мне нужно обновить страницу, когда я нажав на попробовать новый тег CAPTCHA на якорь.

ответ

1

Попробуйте использовать уникальную строку с источником IMG

$(document.body).on("click", ".f-captcha", function() { 
     var randLetter =Math.floor(Math.random() * 5854553); 
    $('#captchaimage').attr('src', '/User/ShowCaptchaImage?ver='+randLetter); 
}); 
+0

Благодаря @ShowStopper для быстрого ответа и работает нормально. – rudrainnovative

1

Привет я STRUCT с той же проблемой, но я найти решение на чистую попробовать эти они будут работать для меня. это может быть случиться, потому что браузер получить изображение из памяти поймать

  $(document).ready(function() { 
       $(".f-captcha").click(function() {     

        d = new Date(); 
        $("#captchaimage").attr("src", "/User/ShowCaptchaImage?" + d.getTime()); 

       }); 
      }); 
+0

Спасибо @anuragdeokar, ваше решение также работает пока. – rudrainnovative