我正在将几个正在运行的asp.net mvc 4(razor)网页转换为jquery mobile,我看到一些我不理解的东西。
@ Html.DropDownListFor并不总是填充.....我已经使用firebug和SOMETIMES检查了html,当网页出现时它的下拉列表没有值...但它是零星的......我讨厌零星的问题....它让我爬上了墙......
这是控制器......我已经检查了问题发生的时间......它总是生成数据并发送它....
public ActionResult SelectWorkCenter()
{
SelectWorkCenterInputModel model = new SelectWorkCenterInputModel();
model.WorkCenterList = wcService.GetWorkCenters().OrderBy(p=>p.WorkCenterName).ToList();
return View(model);
}
以下是具有零星工作的下拉列表的网页:
@using TBS.Etracs.Web.Main.Areas.WorkCenter.Models
@model SelectWorkCenterInputModel
@{
ViewBag.Title = "Select Work Center";
}
@using (Html.BeginForm("SelectWorkOrder", "Mobile", new {Model.SelectedWorkCenterID }))
{
<div class="divTable">
<div class="divTableRow">
<div class="divTableCell"></div>
<div class="divTableCell">[WorkCenterName (#Vehicles)]</div>
</div>
<div class="divTableRow">
<div class="divTableCell"><label><strong> WorkCenter</strong></label></div>
<div class="divTableCell">
@Html.DropDownListFor(p => p.SelectedWorkCenterID,
new SelectList(Model.WorkCenterList, "WorkCenterID", "WorkCenterName"),
"Select a Work Center",
new { Class = "dropdownstyle",
onchange = "this.form.submit();",
style = "width:220px; height: 40px;font-size: 1.2em;font-weight:bold"
})
</div>
</div>
</div>
<input type="submit" value="Back" onclick="history.back(); return false;" style="margin-right: 20px" />
}
我正在将divTable转换为data-role ....而且在我转换为数据角色之后,有些事情会改善,而有时候它会使问题变得更糟......
我不明白为什么转换到jquery mobile会对此产生任何影响......
我遇到的另一个问题是我的按钮并不总是将事件发送回我的控制器,因为我已经转换为jquery mobile ....我不知道这是否是一个相关的问题。 ..
我错过了哪些想法?
答案 0 :(得分:0)
更多细节.....现在我知道发生了什么事情我看到之前已经问过这个问题......我仍然没有解决问题,但它似乎不是我在其他帖子中看到的最喜欢的问题....这是我的模型....这应该是正确的(因为它工作)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using TBS.Etracs.Web.Main.Models;
namespace TBS.Etracs.Web.Main.Areas.WorkCenter.Models
{
public class SelectWorkCenterInputModel
{
public int SelectedWorkCenterID { get; set; }
public List<AssignedWorkCenter> WorkCenterList { get; set; }
}
}
和
AssignedWorkCenter is an EF generated type with values of
System.Int32 WorkCenterID
System.String WorkCenterName
答案 1 :(得分:0)
好的......我不明白,但这是解决方案......
问题在于DropDownListFor中的Style的具体情况....通过消除Style行,一切正常......
@Html.DropDownListFor(p => p.SelectedWorkOrderCode,
new SelectList (Model.WorkOrders, "WorkCenterID", "WorkOrderCodeDesc"),
"Select a Work Order",
new { id = "WorkCenterID",
Class = "dropdownstyle" })