表单未将POST数据传递给控制器

时间:2018-09-17 18:41:07

标签: c# asp.net asp.net-mvc razor

我正在传递对文件的引用和字符串值cardid。由于某些原因,当我返回结果时,cardid的值为空。但是,当我查看页面时,<h3>标头包含我期望的字符串。我究竟做错了什么?

HTML视图

<h3>@Model.CV.Id</h3>

@using (Html.BeginForm("UploadFile", "Tickets", FormMethod.Post, new { cardid=@Model.CV.Id, enctype = "multipart/form-data"}))
{
    <input type="file" name="file" />
    <input type="submit" value="Upload Attachment" />
}

控制器

public async Task<IActionResult> UploadFile(string cardid,IFormFile file)
{
    ......
    string res="yay";
    return Ok(new {cardid=cardid,res=res });
}

1 个答案:

答案 0 :(得分:1)

您应在表单中加入cardid。您只是在<form>上创建了一个属性,却没有任何作用。

<h3>@Model.CV.Id</h3>

@using (Html.BeginForm("UploadFile", "Tickets", FormMethod.Post, new { enctype = "multipart/form-data"}))
{
    <input type="hidden" name="cardid" value="@(Model.CV.Id)" />
    <input type="file" name="file" />
    <input type="submit" value="Upload Attachment" />
}

您还可以在操作中加入“心脏”:

Html.BeginForm("UploadFile?cardid=" + Model.CV.Id, "Tickets", FormMethod.Post...)