我正在使用MVC應用程序作爲服務,所以我刪除了視圖。我能夠做出控制器電話:如何將文件從MFC客戶端(CInternetSession)上傳到ASP.NET MVC
public class HomeController : Controller
{
// GET: /Home/
public string Index(string param1, string param2) {
...
}
從MFC應用程序:
string URL(_T("http://localhost:2374/home/index/myparam1/myparam2"));
pHttpFile = dynamic_cast<CHttpFile*> (m_Session.OpenURL(URL));
if (pHttpFile) {
CHAR szBuff[1024] = { 0 };
while (pHttpFile->Read(szBuff, 1024) > 0) {
info += szBuff;
...
我們上傳一個XML文件,我想這在MFC客戶端上:
CHttpConnection *pHttpConn = m_Session.GetHttpConnection(_T("localhost:2374"));
if (pHttpConn)
{
CHttpFile *pHttpFile = pHttpConn->OpenRequest(
CHttpConnection::HTTP_VERB_POST,
_T("file.xml"));
DWORD dwRet = 0;
pHttpFile->QueryInfoStatusCode(dwRet);
if (dwRet == HTTP_STATUS_OK)
{
CString headers(_T("Content-type: text/xml; charset=utf-8"));
if (pHttpFile->AddRequestHeaders(headers))
{
if (pHttpFile->SendRequestEx(xml.GetLength(), HSR_SYNC | HSR_INITIATE))
{
pHttpFile->Write(xml, xml.GetLength());
pHttpFile->EndRequest(HSR_SYNC);
...
,這在MVC方面:
[AcceptVerbs(HttpVerbs.Post)]
public void FileUpload(HttpPostedFileBase uploadFile)
{
客戶端執行時沒有錯誤,但服務器端沒有任何反應。我不知道如何獲取Controller中調用的FileUpload()。我是否使用MapRoute(),如果是這樣的話?
什麼是MFC告訴我他們。 – 2010-09-02 05:40:31
@ 4thpage:MFC - 微軟基礎類(VC++)。 – amolbk 2010-09-02 05:43:16
是的,URL和動詞需要匹配最終以'FileUpload()'方法結束的路由。通常,這將是一個POST到'/ controllername/FileUpload'。 URL'/ home/index/myparam1/myparam2'通常映射到'HomeController'的'Index()'方法,'myparam1'和'myparam2'作爲方法參數。將URL映射到ASP.NET中的方法的過程稱爲* URL路由*,並存在於ASP.NET 4 Web窗體和ASP.NET MVC中。你是怎麼想出ASP.NET MVC作爲向MFC客戶端提供服務的選擇的? :) – bzlm 2010-09-02 11:20:10