W aplikacji ASP.NET MVC 3 używam Ajax.BeginForm do wysyłania tekstu zapisanego do kontrolera.Ajax.BeginForm nie wywołuje OnSuccess
@using (Ajax.BeginForm("Post", "Forum", new {threadId = Model.Thread.Id }, new AjaxOptions { OnSuccess = "PostReply" }))
{
<div id="reply-area">
<h3 style="border-bottom:1px solid black">POST REPLY</h3>
<span id="post-error" class="error-message"></span>
<textarea rows="1" cols="1" id="post-textarea" name="Content"> </textarea>
<input type="submit" class="button" value="Submit"/>
</div>
}
W kontrolerze mam
[HttpPost]
public ActionResult Post(int threadId,PostModel model)
{
bool Success = false;
if (ModelState.IsValid)
{
Success=Unit.ForumFacade.CreatePost(Unit.ForumFacade.GetThreadByID(threadId), model.Content, CurrentUserId);
if (Success == true) return View("PostSuccess");
}
return Json("fsdfds");
}
I w javascript Mam ten
function PostReply(isRequestSuccessed) {
alert("asdasd");
if (isRequestSuccessed==false) {
$("#post-error").html("Please Try Again");
}
else
{
$("#post-error").html("");
}
}
Problemem jest to, że funkcja Javascript w nie strzelać i isntead alert, przeglądarkę (Firefox) zwraca mi wyskakujące okienko, aby pobrać plik aplikacji/json. Co jest nie tak?
Proszę odnieść to http://stackoverflow.com/questions/5061063/mvc-3-ajax-beginform-does-a-full-post-back – Sreekumar