나는 ASP.NET MVC에서 아약스/jQuery를 다시 게시에 문제가 있어요 3.이상한 검증 문제 3
- 검증 아래 코드에에 실패하면 예상 결과가 제공되고 양식이 게시되지 않습니다.
- 유효성 검사 이 성공한 경우은 양식 제출시 아래 기능이 적용되지 않고 양식이 제출되어 브라우저에 json 파일을 반환합니다.
누군가가이 문제에 관해 밝힐 수 있다면, 고맙겠습니다.
내가 포함 한 내 부분, 보기 아래 컨트롤러. (뷰 내에서)
내보기
@model TheLayer.EF.NoteAddPartial
@{using (Html.BeginForm("Create", "Note", new { area = "" }, FormMethod.Post, new { id = "noteAdd" }))
{
@Html.TextAreaFor(m => m.Note_Text, new { @class = "note-input" }) //note-input
@Html.ValidationMessageFor(model => model.Note_Text)
<input type="submit" value="Send" />
}}
내 클라이언트 측 스크립트
<script type="text/javascript">
$(function() {
$('#noteAdd').submit(function (e) {
e.preventDefault();
if ($(this).valid()) {
alert('posting');
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
error: function (xhr, ajaxOptions, thrownError) {
alert('An error occured when processing this request:\r\n\r\n' + thrownError);
},
success: function (result) {
alert(result.s);
}
});
}
return false;
});
});
내 컨트롤러
public class NoteController : Controller
{
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Create(NoteAddPartial model)
{
try
{
NoteMethods.CreateLeadNote(model.Note_Text, SessionManager.Current.ActiveUser.Username, model.ItemId, SessionManager.Current.ActiveUser.Company);
return Json(new { s = "Success" });
}
catch (NoPermissionException)
{
return Json(new { s = "No permission" });
}
}
}
내 부분
namespace XX
{
/// <summary>
/// Partial lead person view
/// </summary>
[MetadataType(typeof(NoteAddPartial_Validation))]
public partial class NoteAddPartial
{
public string Note_Text { get; set; }
public int? Source { get; set; }
public string Username { get; set; }
public int ItemId { get; set; }
public int TypeId { get; set; }
}
public class NoteAddPartial_Validation
{
[Required]
public string Note_Text { get; set; }
[HiddenInput(DisplayValue = false)]
public int ItemId { get; set; }
[HiddenInput(DisplayValue = false)]
public int TypeId { get; set; }
}
}
눈에 거슬리지 않는 유효성 검사를 사용할 때 양식 제출을 가로 챌 수 없었습니다. 그게 네가하고 싶은 일이지, 그렇지? 양식이 유효한지 여부에 관계없이 클라이언트 측 javascript에서 'submit' 이벤트를 가로 채고 무언가를하고 싶습니다. 질문을 명확히하면 더 빨리 좋은 답변을 얻을 수 있습니다. – Cymen