2014-12-04 24 views
-1

我想在填充文本框後立即顯示圖像,無需單擊任何按鈕即可獲取圖片。在填充文本框後立即顯示圖像

我這樣做,我認爲:

@using (Html.BeginForm()) 
{ 
    <input value="" id="UserID" name="UserID" type="text" class="form-control" /> 
    <img id="CaptchaImg" alt="Captcha" src="@Url.Action("showFoto", "loan")" style="" /> 
} 
<script language="javascript" type="text/javascript"> 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("showFoto", "loan")', 
     datatype: "image/jpg", 
     success: function (UserID) { 
      $('#CaptchaImg').attr('src', UserID); 
     } 
    }); 
</script> 

在我的控制器Loan.cs:

[HttpPost] 
public string showFoto(string UserID) 
{ 
    string ImageID = UserID; 
    var virtualPath = string.Format("~/images/profile/{0}.jpg", ImageID); 
    if (System.IO.File.Exists(Server.MapPath(virtualPath))) 
    { 
     return virtualPath; 
    } 
    return null; 
} 

我的信息來自:get a image through jquery ajax 請,需要你的幫助...謝謝!

+0

貴控制器的方法有'[HttpPost] '屬性? – ekad 2014-12-04 02:35:20

+0

你爲什麼要做POST?它應該是一個GET。 – 2014-12-04 02:37:29

+0

什麼是ViewBag.Foto = VirtualPathUtility.ToAbsolute(virtualPath)'? – 2014-12-04 02:38:21

回答

0

更改您的腳本來處理.change事件的文本框,並通過其價值的服務器方法(注意change事件發生時的文本框失去焦點)

$('#UserID').change(function() { 
    $.ajax({ 
    type: "GET", 
    url: '@Url.Action("showFoto", "loan")', 
    data: { userID: $(this).val() }, // pass the value of the textbox to the method 
    datatype: "image/jpg", 
    success: function (UserID) { 
     $('#CaptchaImg').attr('src', UserID); 
    } 
    }); 
}); 
+0

感謝您的幫助。 – Reese 2014-12-04 02:57:54