2
파일 업로드 컨트롤이있는 모델에 바인딩 된 MVC3 양식이 있습니다. (간결함을 제거 추가 HTML) :파일 업로드로 인해 모델 유효성 검사 실패
@model Models.MessageModel
<script type="text/javascript">
var numAttachments = 0;
$(function() {
$(".add-attachment").click(function() {
$(".attachments").append("<div><input type=\"file\" name=\"attachments\" id=\"attachment" + numAttachments + "\" /></div>");
});
});
</script>
@using (Html.BeginForm())
{
@Html.ValidationSummary()
<div class="field-label">Subject:
@Html.EditorFor(model => model.Subject)
</div>
<div class="attachments">
</div>
<div>
<a href="javascript:void(0);" class="add-attachment">Add Attachment</a>
</div>
<div class="message-text">@Html.TextAreaFor(model => model.Text, new { cols = 107, rows = 10 })</div>
<input type="submit" value="Send Message" />
</div>
}
사용자가 링크 "첨부 파일을 추가", 첨부 파일이 필요하지 않은 클릭하여 여러 첨부 파일을 추가 할 수 있습니다. 다음과 같이
내 모델은 다음과 같습니다
public class MessageModel
{
[Required]
public string Subject { get; set; }
[Required]
public string Text { get; set; }
public IEnumerable<HttpPostedFileBase> Attachments { get; set; }
}
(참고 : 나는 또한 같은 결과를 내 액션 메소드에 인자로 모델 중 첨부 파일을 이동하려고했습니다)
내 작업 :
[HttpPost]
public ActionResult New(MessageModel message)
{
// this check passes if no file is uploaded
// but once a file is uploaded, this evaluates to false
// even if the model is valid
if (ModelState.IsValid)
{
// do stuff
}
}
이 양식은 정상적으로 작동하며 업로드를 위해 파일을 선택하지 않으면 유효성 검사가 통과됩니다. 업로드 할 파일을 선택하면 ModelState.IsValid
이 거짓이됩니다. 업로드 된 파일을 무시하도록 유효성을 검사하려면 어떻게해야합니까?
을했다! 감사! –