私のビューモデルは次のようになります。
public class UploadImageForm
{
public string Name { get; set; }
public HttpPostedFileBase Image { get; set; }
}
しかし、次のようにレンダリングされます。
<img src="http://i.imgur.com/E4sRP.png" />
.cshtml
が次のようになっている場合:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>ImageMeta</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Image)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Image)
@Html.ValidationMessageFor(model => model.Image)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<input type="file">
代わりに標準のアップロード コントロールを表示するにはどうすればよいですか? 「エディター」をカスタマイズする方法や、正しくアップロードされるかどうかもわかりません。
Html.IdFor
Intellisense を通じてこれらと.NameFor
ヘルパーを発見しました。今私はできる:
<input id="@Html.IdFor(m => m.Image)" type="file" name="@Html.NameFor(m => m.Image)"/>
マッピングを作成するためにマジック ストリングを使用しないので、これは非常に気に入っています。完全な入力用の Html ヘルパーがあるかどうか、またそうでない場合は作成方法を探しています。