C#.Net从表单帖子中读取字符串输入

C# .Net reading a string input from a form post

本文关键字:读取 字符串 输入 Net 表单      更新时间:2023-09-26

我是C#.net的新手。我在客户端做一个表单发布,它将csv发布到我的控制器

在我的控制器中,我无法读取该值。我的目标是最终创建一个csv文件,因此我避免了ajax帖子。我在表单上的操作指向正确的Url,并将输入附加到表单中。

我的客户端上有这样的东西

    WatchList_Class.prototype.Downloads1 = function(csv) {
 var input = '<input type= "text" id="uploadCsv" name="uploadCsv" value=""' +        csv + ' />';
     $('form#uploadCSV').append(input);
     $('form#uploadCSV').submit();
    };

在控制器一侧,我有

   public ActionResult ExportCSVFile(string data) //Im getting data as null
{
  string toReturn = Server.UrlDecode(data);
  return File(System.Text.Encoding.UTF8.GetBytes(toReturn), "text/csv", "exportedData.csv");
}  

我得到的字符串数据为null;

谁能指出我做错了什么吗。提前感谢

尝试使用此操作方法:

[HttpPost]
public ActionResult ExportCSVFile(HttpPostedFileBase uploadCsv)
{
    uploadCsv.SaveAs("exportedData.csv");
}

(还要注意,在您的代码中,参数data的名称与输入控件uploadCsv的名称不匹配)

您的参数必须与POST变量的名称相匹配。因此,使用uploadCsv:代替数据

[HttpPost]
public ActionResult ExportCSVFile(string uploadCsv) 
{
  string toReturn = Server.UrlDecode(data);
  return File(System.Text.Encoding.UTF8.GetBytes(toReturn), "text/csv", "exportedData.csv");
}

您在上传表单上设置了编码类型吗?

enctype="multipart/form-data"

最可能的原因是您的数据ID和ExportCSVFile处理程序中参数的名称不匹配。使用Fiddler检查实际发布到您页面的内容。