MVC表单multipart / form-data无法正确呈现

时间:2013-02-15 11:36:12

标签: asp.net-mvc razor

这是我的看法。我正在尝试进行文件上传控制。

@section termimalContent {
  @using (Html.BeginForm("Add", "Terminals_Policies", "multipart/form-data"))
  {
    @Html.ValidationSummary(true)
    <fieldset>
      <legend>
        <h2>
            Create new policy</h2>
      </legend>
      <p>
        <strong>Assigning devices to Node:</strong> @Model.GroupName</p>
      <div class="editor-label">
        @Html.LabelFor(model => model.PolicyName)
      </div>
      <div class="editor-field">
        @Html.EditorFor(model => model.PolicyName)
        @Html.ValidationMessageFor(model => model.PolicyName)
      </div>
      <div class="editor-label">
        @Html.LabelFor(model => model.PolicyType)
      </div>
      <div class="editor-field">
        @Html.DropDownListFor(model => model.SelectedItems, new SelectList(Model.PolicyType, "Value", "Text"))
        @Html.ValidationMessageFor(model => model.SelectedItems)
      </div>
      <div class="editor-label">
        <label for="file1">
          Filename:</label>
      </div>
      <div class="editor-field">
        <input type="file" name="files" id="file1" />
      </div>
      <div class="editor-label">
        <label for="file2">
          Filename:</label>
      </div>
      <div class="editor-field">
        <input type="file" name="files" id="file2" />
      </div>
      @Html.HiddenFor(model => model.GroupId)
      @Html.HiddenFor(model => model.GroupName)
      <p>
        <input type="submit" value="Create" />
      </p>
    </fieldset>
  }
}

但是html呈现为:

<form action="/Terminals_Policies/Add/1?Length=19" id="form0" method="post">

任何人都知道我做错了什么

1 个答案:

答案 0 :(得分:1)

尝试:

@using (Html.BeginForm("Add", "Terminals_Policies", FormMethod.Post,new{enctype="multipart/form-data"}))

因为它应该采用格式

Html.BeginForm(action, controller, FormMethod.Post, new { enctype="multipart/form-data"})