0
我有一個非常簡單的視圖,它將提示用戶選擇一個JSON
文件,然後解析它。如何將文件路徑返回給控制器來解析JSON文件
這裏是從視圖中的相關代碼...
@using (Html.BeginForm("AddSampleDataJSON", "Event"))
{
<input type="file" name="GetJSONFile" /><br>
<input type="submit" />
}
這裏是從控制器的方法:
[HttpPost]
public ActionResult AddSampleDataJSON(FormCollection form)
{
string path = ??
using (StreamReader r = new StreamReader(path))
{
string json = r.ReadToEnd();
List<Event> events =
JsonConvert.DeserializeObject<List<Event>>(json);
}
return View();
}
接下來的問題是如何訪問的完整路徑,所以我可以發送到StreamReader
最終解析JSON
。我在FormCollection
對象中看不到它。
由於安全原因(瀏覽器僅發送文件名並且不公開使用文件系統),您不能這麼做。你的參數需要是'HttpPostedFileBase GetJSONFile',它將被填充文件內容。你需要在窗體標籤 –
中設置'enctype =「multipart/form-data」'屬性作爲進入該方法的參數?即使在添加了該屬性後,它仍爲空。而我選擇的文件確實是一個JSON文件。 – user1327418
然後你沒有正確設置它。 (並且它沒有區別它是什麼類型的文件) –