0

我有以下页面来启动 API 调用,但我需要知道是否可以从操作方法而不是直接从我的视图中进行此调用。由于以下原因,我需要从 actin 方法调用 API:-

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Save Asset Form</title>
    <link href="/style/api-style.css" type="text/css" rel="stylesheet">
    </head>
    <body>
    @using (Html.BeginForm(
   null, null, FormMethod.Post, new { @action = "http://win-spdev:8400/servlets/AssetServlet" }
))
 {
        <table width="650" bgcolor="#FFFFFF" cellpadding="5" cellspacing="0" style="border:1px #ccc solid" align="center">
        <tr>
            <th colspan="4">Save Asset Form</th>
        </tr>
        <tr>
            <td align="right" width="142">Name</td>
            <td><input type="text" class="txt" NAME="assetName" style="width:160px;" /></td>
            <td width="142" align="right">Asset Type</td>
            <td><input type="text" class="txt" NAME="assetType" value="" style="width:160px;" /></td>
        </tr>

        //code goes here..............................................................
                <td align="right" width="142">Associate To Department</td>
                <td><input type="text" class="txt" NAME="associateToDepartment" style="width:160px;" /></td>
                <td width="142" align="right">Associate To User</td>
                <td><input type="text" class="txt" NAME="associateToUser" value="" style="width:160px;" /></td>
            </tr>
            </table>
            </td>
        </tr>
        <tr>
            <td colspan="4">
            <table class="innertable" cellpadding="5" cellspacing="0" width="100%">
            <tr>
                <td class="thd" colspan="4">Authentication details</td>
            </tr>
            <tr>
                <td align="right" width="142">username</td>
                <td><input type="text" class="txt" NAME="username" style="width:160px;" /></td>
                <td width="142" align="right">password</td>
                <td><input type="password" class="txt" NAME="password" value="" style="width:160px;" /></td>
            </tr>
            <tr>
                <td align="right" width="142">domain</td>
                <td><input type="text" class="txt" NAME="DOMAIN_NAME" style="width:160px;" /></td>
                <td align="right" width="142">Authentication Mode</td>
                <td><INPUT TYPE=radio NAME="logonDomainName" value="Local Authentication" >Local Authentication&nbsp;
                <INPUT TYPE=radio NAME="logonDomainName" value="AD_AUTH" >AD Authentication</td>
            </tr>
            </table>
            </td>
        </tr>
        <tr>
            <td colspan="4" height="10"></td>
        </tr>
        <tr>
            <td align="center" colspan="4" class="footer"><input type="submit" name="operation" value="SaveAsset" class="btnsubmitact"></td>
        </tr>
        </table>
}
  1. 我需要将调用记录到我自己的数据库中,因此在完成 API 调用后,我需要使用 API 状态(成功或失败)记录调用。

  2. 我需要处理返回的 XML 并显示对用户更友好的错误消息,或者即使 API 调用暂停,我也想使用我的 asp.net mvc 重定向到操作方法。

关于如何将 API 调用从我的视图转换为我的操作方法的任何建议?

4

1 回答 1

1

我需要知道是否可以从操作方法而不是直接从我的视图中进行此调用

是的,您只需要启动一个HttpWebRequest并从您的操作内部发送它,或者如果它只是一个简单的请求,请使用WebClient 。

于 2013-07-30T14:44:32.077 回答