ideode는 일반 외부 HTML 페이지의 양식 데이터를 다른 MVC 사이트 컨트롤러에 게시하는 것입니다. 그런 다음 데이터는 거의 웹 서비스를 사용하는 것처럼 처리됩니다.외부 HTML ajaxForm 게시물에 대한 MVC ActionResult 리턴 유형은 무엇이되어야합니까?
$(document).ready(function() {
var options = {
target: '#output',
success: function(data){ alert('test success'); },
url: http://localhost:57232/Services/SendFormData,
dataType: json
};
$('form').ajaxForm(options);
});
ActionResult는 FormCollection 개체에서 데이터를 올바르게 수신합니다.
[HttpPost]
public ActionResult SendFormData(FormCollection collection)
{
string s = string.Empty;
return Json(new { Success = true, Message = "Message!" }, JsonRequestBehavior.AllowGet);
}
성공 결과가 반환되는이 시점에서
하지만
는 외형에 IE가 성공 콜백 함수를 호출하는 대신 반환 된 바이트를 저장하거나 열려고이 경우에 브라우저를 얻을 때.이 페이지는 외부 페이지이므로 MVC 사이트의 일부가 아니기 때문에보기 또는 부분보기를 사용할 수 없습니다. 반환 유형은 무엇입니까? 당신은 DIV id를 언급 할 필요가 아약스 양식의과 targetId에서
@using (Ajax.BeginForm("Form", new AjaxOptions() { UpdateTargetId = "FormContainerdiv" , OnSuccess = "$.validator.unobtrusive.parse('form');", OnComplete = "OnComplete();" }))
: 당신이 UpdateTargetID을 설정해야 AjaxForm에서 또한
[HttpPost]
public ActionResult Form(Comment feedback)
{
if (feedback != null)
{
feedback.CommentedOn = DateTime.Now;
feedback.CommentId += 1;
if (ModelState.IsValid)
{
BlogPost blogpost = db.BlogPosts.Find(feedback.BlogId);
if (blogpost != null)
blogpost.NoofComments += 1;
db.Entry(blogpost).State = EntityState.Modified;
db.Entry(feedback).State = EntityState.Modified;
db.Comments.Add(feedback);
db.SaveChanges();
return PartialView("CommentSuccess", feedback);
}
}
return PartialView("Comment", feedback);
}
:
"target"옵션은 #output의 데이터를 반환 된 데이터로 바꾸기 위해 양식 플러그인에 지시하고 있습니다. 테스트를 위해 제거하고 콜백 성공 함수에만 의존합니다. 또한, 당신은 따옴표에 귀하의 URL을 넣어해야 할 것 같아요. – BZink
양식에 파일 업로드 필드가 포함되어있을 수 있습니까? –
안녕하세요, 업로드 필드가 없습니다, 입력란의 대부분은 한 번 게시 된 서버 쪽에서 사용됩니다 숨겨진 입력 유형, 아이디어는 데이터의 양을 제한 할 수있는 querystring을 우회하는 것입니다. URL 주위에 따옴표를 포함하고 대상 옵션을 제거했습니다. 두 경우 모두 같은 문제가 남아있었습니다. 그것은 심지어 성공 이벤트를 호출하지 않습니다. – Kosmosniks