簡體   English   中英

從 Restful API 返回要顯示在視圖上的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM