mvc ajax.beginform不使用partialview
我一直在尝试让级联下拉列表在asp.net mvc4中工作。。。。现在我从ajax.beginform开始。。。稍后我可能会直接转到jquery 我的问题是第一个(track)ajax.beginform被调用,它调用控制器,然后它指向第二个部分(rail)。。。但是,当SelectRailPartial.cshtml格式副本显示完整视图时…它不是以div标记替换的格式副本。。。。我尝试了ajaxControls中的各种值来指定替换等…它们似乎没有什么区别 我怀疑我的问题可能出在我所包含的Java脚本中……我已经把它全部剥离回了一些我知道我需要保持简单的东西……有人能发现我做错了什么吗?请 在我的(移动)控制器中,我有以下两种方法:mvc ajax.beginform不使用partialview,ajax,asp.net-mvc-4,ajax.beginform,Ajax,Asp.net Mvc 4,Ajax.beginform,我一直在尝试让级联下拉列表在asp.net mvc4中工作。。。。现在我从ajax.beginform开始。。。稍后我可能会直接转到jquery 我的问题是第一个(track)ajax.beginform被调用,它调用控制器,然后它指向第二个部分(rail)。。。但是,当SelectRailPartial.cshtml格式副本显示完整视图时…它不是以div标记替换的格式副本。。。。我尝试了ajaxControls中的各种值来指定替换等…它们似乎没有什么区别 我怀疑我的问题可能出在我所包含的Jav
//this is my main form that I am looking at...
public ActionResult LoadRailVehicle()
{
LoadRailVehicleInputModel model = new LoadRailVehicleInputModel();
IRailService railService = new RailService();
model.TrackList = railService.GetActiveRailTracks().ToList();
return View(model);
}
[HttpPost]
public ActionResult SelectTrack(string selectedTrack)
{
LoadRailVehicleInputModel model = new LoadRailVehicleInputModel();
//kludge for now...
model.RailCarList.Add("aaaa");
return PartialView("xSelectRailPartial", model);
}
@using TBS.Etracs.Web.Main.Areas.Carrier.Models
@model LoadRailVehicleInputModel
<scripts>
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</scripts>
@using (Ajax.BeginForm("SelectTrack", "Mobile",
new AjaxOptions
{ UpdateTargetId = "Raildiv"
@* This is a control in theLoadRailVehicle.cshtml *@
}))
{
@Html.DropDownListFor(p => p.SelectedTrack,
new SelectList(Model.TrackList),
new { id = "trackdropdown",
name = "trackdropdown",
Class = "dropdownstyle",
style = "width: 100px" ,
onchange = "this.form.submit();"})
}
我的LoadRailVehicle.cshtml
@using TBS.Etracs.Web.Main.Areas.Carrier.Models
@model LoadRailVehicleInputModel
@{
ViewBag.Title = "Load Rail Vehicle";
}
<scripts>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.intellisense.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</scripts>
<table border="0">
<tr>
<td>Track</td>
<td> : </td>
<td><div id="trackdiv">@Html.Partial("xSelectTrackPartial", Model)</div></td>
</tr>
<tr>
<td>Rail</td>
<td> : </td>
<td><div id="Raildiv">@Html.Partial("xSelectRailPartial", Model)</div></td>
</tr>
</table>
@using TBS.Etracs.Web.Main.Areas.Carrier.Models
@model LoadRailVehicleInputModel
<scripts>
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</scripts>
@if (Model.RailCarList != null && Model.RailCarList.Count() > 0)
{
@Html.DropDownListFor(p => p.SelectedRailCar,
new SelectList(Model.RailCarList),
new { id = "raildropdown",
name = "raildropdown",
Class = "dropdownstyle",
style = "width: 100px" })
}
@使用TBS.Etracs.Web.Main.Areas.Carrier.Models
@模型装载轨道车辆输入模型
@{
ViewBag.Title=“装载轨道车辆”;
}
跟踪
:
@Html.Partial(“xSelectTrackPartial”,Model)
轨道
:
@Html.Partial(“xSelectRailPartial”,Model)
在xSelectTrackPartial.cshtml中:
//this is my main form that I am looking at...
public ActionResult LoadRailVehicle()
{
LoadRailVehicleInputModel model = new LoadRailVehicleInputModel();
IRailService railService = new RailService();
model.TrackList = railService.GetActiveRailTracks().ToList();
return View(model);
}
[HttpPost]
public ActionResult SelectTrack(string selectedTrack)
{
LoadRailVehicleInputModel model = new LoadRailVehicleInputModel();
//kludge for now...
model.RailCarList.Add("aaaa");
return PartialView("xSelectRailPartial", model);
}
@using TBS.Etracs.Web.Main.Areas.Carrier.Models
@model LoadRailVehicleInputModel
<scripts>
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</scripts>
@using (Ajax.BeginForm("SelectTrack", "Mobile",
new AjaxOptions
{ UpdateTargetId = "Raildiv"
@* This is a control in theLoadRailVehicle.cshtml *@
}))
{
@Html.DropDownListFor(p => p.SelectedTrack,
new SelectList(Model.TrackList),
new { id = "trackdropdown",
name = "trackdropdown",
Class = "dropdownstyle",
style = "width: 100px" ,
onchange = "this.form.submit();"})
}
@使用TBS.Etracs.Web.Main.Areas.Carrier.Models
@模型装载轨道车辆输入模型
@使用(Ajax.BeginForm(“SelectTrack”、“Mobile”),
新选择
{UpdateTargetId=“Raildiv”
@*这是LoadRailVehicle.cshtml中的控件*@
}))
{
@Html.DropDownListFor(p=>p.SelectedTrack,
新的选择列表(型号跟踪列表),
新建{id=“trackdropdown”,
name=“trackdropdown”,
Class=“dropdownstyle”,
style=“宽度:100px”,
onchange=“this.form.submit();”})
}
xSelectRailPartial.cshtml中的
@using TBS.Etracs.Web.Main.Areas.Carrier.Models
@model LoadRailVehicleInputModel
@{
ViewBag.Title = "Load Rail Vehicle";
}
<scripts>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.intellisense.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</scripts>
<table border="0">
<tr>
<td>Track</td>
<td> : </td>
<td><div id="trackdiv">@Html.Partial("xSelectTrackPartial", Model)</div></td>
</tr>
<tr>
<td>Rail</td>
<td> : </td>
<td><div id="Raildiv">@Html.Partial("xSelectRailPartial", Model)</div></td>
</tr>
</table>
@using TBS.Etracs.Web.Main.Areas.Carrier.Models
@model LoadRailVehicleInputModel
<scripts>
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</scripts>
@if (Model.RailCarList != null && Model.RailCarList.Count() > 0)
{
@Html.DropDownListFor(p => p.SelectedRailCar,
new SelectList(Model.RailCarList),
new { id = "raildropdown",
name = "raildropdown",
Class = "dropdownstyle",
style = "width: 100px" })
}
@使用TBS.Etracs.Web.Main.Areas.Carrier.Models
@模型装载轨道车辆输入模型
@if(Model.RailCarList!=null&&Model.RailCarList.Count()>0)
{
@Html.DropDownListFor(p=>p.SelectedRailCar,
新的选择列表(型号:RailCarList),
新建{id=“raildropdown”,
name=“raildropdown”,
Class=“dropdownstyle”,
style=“宽度:100px”})
}
这是我的_layout.cshtml,我通过_viewstart获取
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - Etracs</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@* @Styles.Render("~/Content/css") *@
@* @Scripts.Render("~/bundles/modernizr") *@
@* @Scripts.Render("~/bundles/jquery") *@
<script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.intellisense.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@RenderSection("scripts", required: false)
</head>
<body>
<header>
<div class="content-wrapper">
<div class="float-right">
<section id="login">
@Html.Partial("_LoginPartial")
</section>
</div>
</div>
</header>
<div id="body">
<section class="content-wrapper main-content clear-fix">
@RenderBody()
</section>
</div>
@Html.Partial("_ViewSwitcher")
<footer>
<div class="content-wrapper">
<div class="float-left">
<p>© @DateTime.Now.Year - Turning Basin Services</p>
</div>
</div>
</footer>
</body>
</html>
@ViewBag.Title-Etracs
@*@Styles.Render(“~/Content/css”)*@
@*@Scripts.Render(“~/bundles/modernizer”)*@
@*@Scripts.Render(“~/bundles/jquery”)*@
@RenderSection(“脚本”,必需:false)
@Html.Partial(“_LoginPartial”)
@RenderBody()
@Html.Partial(“_ViewSwitcher”)
&抄袭@DateTime.Now.Year-转折盆地服务
查看注释……我切换到了纯jquery,在这方面遇到了很多问题(这就是为什么我先尝试ajax.beginform)……但过了一段时间,我消除了jquery中的所有问题,调用现在可以工作了……另外一个好处是,我可以将这段新代码嵌入到html.beginform中
我从来没有弄清楚ajax.beginform中的问题是什么,导致它无法在部分屏幕中创建…我决定切换到直接Jquery,因为我读到在html.beginform中不能有ajax.beginform(我最终需要它)…在经历了很多小问题之后,我让jquery开始工作了…对于那些在我之后阅读本文的人来说,一个没有预料到的问题是在JsonResult调用上需要JsonRequestBehavior…即。public JsonResult GetRailCars(string selectedTrack){IRailCarService railCarService=new railCarService();LoadRailVehicleInputModel=new LoadRailVehicleInputModel();List railCarList=new List();if(selectedTrack!=null&&selectedTrack!=string.Empty){//railCarList.Add(“aaaa”);railCarList.Add(“bbbb”);}返回Json(railCarList,JsonRequestBehavior.AllowGet);}