因此,我沒有得到我仍然應該在操作中下載文件的內容。在MVC3中返回文件的操作
所以,這裏是我有的控制器。一切似乎工作正常,除了我從來沒有收到任何文件下載客戶端。
<HttpPost()>
Function meetingCP(idCont As Integer, idOpp As Integer, schedule As String) As FileResult
Dim id As Integer = 0
Dim iCSFile As StringBuilder = New StringBuilder()
Dim startDate As Date = schedule
Dim endDate As Date = startDate.AddMinutes(30)
iCSFile.AppendLine("BEGIN:VCALENDAR")
iCSFile.AppendLine("VERSION:2.0")
iCSFile.AppendLine("METHOD:REQUEST")
[bla bla bla]
iCSFile.AppendLine("DESCRIPTION:Reminder")
iCSFile.AppendLine("END:VALARM")
iCSFile.AppendLine("END:VEVENT")
iCSFile.AppendLine("END:VCALENDAR")
Dim StreamWriter As StreamWriter = New StreamWriter("C:\MvcApplication4\MvcApplication4\Content\test.ics")
StreamWriter.WriteLine(iCSFile)
StreamWriter.Close()
Return File(iCSFile.ToString, "text/plain", "MeetingRequest.ics")
'Return File(Encoding.UTF8.GetBytes(iCSFile.ToString()), "text/plain", "MeetingRequest.ics")
End Function
這個動作被ajax調用。這可能是問題嗎?
function meetCP(idCont, idOpp) {
var meetCPSelect = ("#meettime" + idCont);
var dateTime = $(meetCPSelect).val();
$.ajax({
url: '@Url.Action("meetingCP")',
type: 'POST',
data: { idCont: idCont, idOpp: idOpp, schedule: dateTime },
success: function (result) { }
});
};
所以當我雖然異步querry是問題。我不太喜歡你的選擇。我希望更直接的用戶。這個文件的目的是讓用戶賺取時間。這樣,用戶將不得不等待1秒,然後不得不重新點擊...我需要更直接的東西。我會用一個簡單的html文章嘗試一下。 – 2012-04-19 12:34:02
是的,公平地說,我同意這是一個帖子的最佳選擇,它可以與AJAX呼叫有點混亂:) – mattytommo 2012-04-19 12:37:32
好吧,用一個簡單的帖子,文件下載確實工作正常。但是,我現在遇到的問題是將數據從視圖傳遞到控制器: - (... – 2012-04-19 12:58:48