[英]Return a string to be displayed on a View from Restful API
我有一張提交給表單的條形碼圖像。 圖像被發布到一個寧靜的 API。 API 接收圖像,處理圖像並拋出異常或從圖像中返回條形碼字符串。
下面是我的代碼片段
看法 -
<form name="somename" method="post" enctype="multipart/form-data"
action="/api/decoder">
<input type="file" name="ImageToDecode" accept="image/*" capture="camera" />
<input type="submit" value="Get Barcode..." />
< /form>
api -
public class DecodeImageController : ApiController
{
public string Post()
{
var postedImage = HttpContext.Current.Request; // get the posted image
// do some stuff in here to read the barcode from the image
if (!could read image)
{
return barcode.ToString();
}
// barcode could not be found
throw new Exception("Barcode could not be read");
} // end post method
}
我正在使用 Visual Studio 2013 MVC 項目。 API 和視圖都在不同的項目中。 這就是返回的內容。
此 XML 文件似乎沒有任何與之關聯的樣式信息。 文檔樹如下所示。
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">10320972351</string>
這工作正常,但現在我想調用 API 並將返回的條形碼發送到我的控制器。
任何方向都會有所幫助。
隨着想法涌入我的腦海,我將繼續致力於此。
這個回答是正確的。 您同步發布表單並收到正確答案。
解決方案-使用Json交換數據並使用$ .post之類的jquery發送異步查詢並以$ .post的成功方法執行所需的操作
除了@Vladmir的答案...
您可以配置API以json數據類型返回字符串,但是您將需要添加格式化程序以從API返回json響應。 請參閱這篇文章如何使用ASP如何獲取ASP.NET Web API以返回JSON而不是XML? 知道如何添加格式化程序。
之后,您可以使用malsup jquery插件通過內容類型為“ text / html”的ajax將圖像發布到API,從而在json中生成條形碼值。
感謝@Vladmir和@Mihir,這就是我發現的東西。
首先,我通過向WebApiConfig添加JsonFormatter來使用@Mihirs答案。 這似乎足以返回不在xml中的字符串。
並使用了此處提供的一些客戶端代碼-
http://www.codeproject.com/Articles/806075/File-Upload-using-jQuery-AJAX-in-ASP-NET-Web-API
我還遇到了一個跨源錯誤,該錯誤已解決,本文: 在IIS7上啟用跨域資源共享
感謝您指出正確的方向:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.