8

csv ファイルをアップロードする必要があり、その拡張子を .csv に制限したい

そこで、ViewModel に次のプロパティを追加しました。

[FileExtensions(ErrorMessage = "Must choose .csv file.",Extensions = "csv,txt")]
public HttpPostedFileBase File { get; set; }

私の見解では、私は次のことを持っています:

@Html.TextBoxFor(m => m.File, new { type = "file"})
@Html.ValidationMessageFor(m => m.File)

ただし、「ModelState.IsValid」チェックにヒットするとすぐに、「.csv ファイルを選択する必要があります」というエラー メッセージで無効が返されます。

パラメータが不足しているだけだと思いますが、これが使用されているサンプルはまだどこにもありません。

4

1 に答える 1

3

問題は、FileExtensionsAttributeが文字列変数でのみ機能することです。HttpPostedFileBase変数のファイル拡張子を確認する最も簡単な方法は、この単純な属性を使用することです。それは私の問題を解決しました。

唯一の欠点は、この新しい属性がサーバー側でのみ検証されることです。そのため、モデルの状態を次のように確認することを忘れないでください。

if (ModelState.IsValid)
{
  // Do the work
}
于 2013-02-27T22:12:36.353 に答える