在ASP.Net MVC 3.0中,我使用的是Ajax.Beginform
并且在我调用jQuery函数的表单成功时命中JsonResult.但由于某种原因,我的表单重定向到JsonAction
我的看法
@using (Ajax.BeginForm("ActionName", "Controller", null, new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "ShowResult"
}, new { id = "myform" }))
{
// All form Fields
<input type="submit" value="Continue" class="button standard" />
}
Run Code Online (Sandbox Code Playgroud)
我的控制器
public JsonResult ActionName(FormCollection collection)
{
return Json(new { _status },JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
jQuery的
<script type="text/javascript">
function ShowResult(data) {
// alert("I am at ShowResult");
if (data.isRedirect) {
window.location.href = json.redirectUrl;
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我点击提交.它运行JSonResult并将页面重定向到我已包含的主机/控制器/动作名称
<script src="@Url.Content("jquery.unobtrusive-ajax.min.js")"></script>
Run Code Online (Sandbox Code Playgroud)
在我的layout.cshtml中
任何人都可以告诉我什么可能是错的?
我发现了这个问题.现在我必须找到提交的解决方案我正在验证我的表格
$("#myform").validate({
submitHandler: function (form) {
// …Run Code Online (Sandbox Code Playgroud) 单击"提交"按钮后.我在实体中变为空. 有人有解决方案吗?
视图
@using (Ajax.BeginForm("CreateRoom", "Room", new AjaxOptions { HttpMethod = "POST", OnComplete = "window.location.href='Index'" }, new { enctype = "multipart/form-data", id = "ajaxUploadForm" }))
{
<input type="file" name="Room" />
<input type="submit" value="OK" />
}
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public ActionResult CreateRoom(RoomFileView entity)
{
//code
}
Run Code Online (Sandbox Code Playgroud)
模型
public class RoomFileView
{
public RoomFileView();
public int BuildingId { get; set; }
public int CityId { get; set; }
public int CountryId { get; set; }
public int FloorId { get; set; }
public …Run Code Online (Sandbox Code Playgroud)