使用enctype =“multipart / form-data”的Form Post,导致参数无法通过

时间:2012-06-19 18:09:00

标签: asp.net-mvc-3 url razor parameters

在ASP.NET MVC 3(Razor)项目中,我正在尝试上传图片: 观点的相关部分:

@using (@Html.BeginForm( new {enctype = "multipart/form-data" }))
{
    <text>Select a file </text>    
    <input type="file" name="file" />     
    <input type="submit" value="Upload" />        
}

明确说明enctype参数是“负责”剥离参数部分。例如,如果URL(打开视图)如下:

mydomain/Controller/Action/id?parameter1=somevalue1

上面表格中的BeginForm语句将给出(回发)以下内容:

mydomain/Controller/Action/id

因此剥离了部分:?parameter1 = somevalue1,这是必需的!

我该如何照顾这个?

2 个答案:

答案 0 :(得分:3)

由于您已经将数据发布到服务器,我将所需的参数信息作为隐藏字段放在表单中。

提出问题“我是否可以将此信息集合发送到此URL而无需填充其他集合?”

使用查询字符串方法,答案是否定的。我把它当作一个隐藏的领域。

@Html.Hidden("SomeParameter", SomeValue);

答案 1 :(得分:1)

深入挖掘我发现我能做到:

@using (@Html.BeginForm(new{parameter1= Request["parameter1"]},  new {enctype = "multipart/form-data" }))
{
    <text>Select a file </text>    
    <input type="file" name="file" />     
    <input type="submit" value="Upload" />        
}

注意Html.BeginForm与最初的不同。