http://dataannotationsextensions.org/の DataAnnotationsExtensions を使用しています
ここからの例でhttp://weblogs.asp.net/srkirkland/archive/2011/02/23/introducing-data-annotations-extensions.aspx
コントローラーコード
public ActionResult Create(Dog dog, HttpPostedFileBase Picture)
{
Regex rgx = new Regex(@"^.*\.(jpg|gif|jpeg|png)$");
Match m = rgx.Match(Picture.FileName);
if (rgx.IsMatch(Picture.FileName))
{
if (ModelState.IsValid)
{
型式コード
[FileExtensions("png|jpg|jpeg|gif", ErrorMessage = "Only jpg jpeg gif or png files allowed")]
public string Picture { get; set; }
そしてかみそりのコード
@Html.TextBoxFor(model => model.Picture, new { type = "file" })
@Html.ValidationMessageFor(model => model.Picture)
私がすることはすべて失敗します
if (ModelState.IsValid)
FileExtensions Annotation を削除すると問題なく動作しますが、不要なファイル タイプをブロックできなくなります。
ここにあるデータ注釈拡張のコードを確認するところまで行きました https://github.com/srkirkland/DataAnnotationsExtensions/blob/master/DataAnnotationsExtensions/FileExtensionsAttribute.cs
そして、私はまだ問題がどこにあるのかを見つけることができないようです.