我们正在研究Kendo MVC UI,我们将数据从一个视图发送到另一个视图,所有数据(测试框,下拉列表)都被传递到除附件(pdf,xlsx)之外的下一个视图。
下面是我们编写的控制器中的代码,用于从视图中捕获并保存数据并将相同的数据传递到另一个视图并将数据绑定到kendo控件(也可以上传控件)
void sendMessage(String message) {
if (chat != null) {
try {
chat.sendMessage(message);
Message msg = new Message();
msg.setTo(JidCreate.bareFrom(jid));
msg.setFrom(XMPP.getInstance().getConnection(acitiviy)
.getUser());
ChatStateExtension ext = new ChatStateExtension(
ChatState.paused);
msg.addExtension(ext);
lastComposing = System.currentTimeMillis();
chat.sendMessage(msg);
} catch (SmackException.NotConnectedException e) {
} catch (Exception e) {
}
}
以下是我们将请求绑定到第二个
的代码 public ActionResult SaveData(System.Web.Mvc.FormCollection form, IEnumerable<HttpPostedFileBase> files) // insert operation
{
//*************************//
if (form != null)
{
string ddluserexceptioncategory = Convert.ToString(form["txtexceptioncategory"], CultureInfo.InvariantCulture);
if (!string.IsNullOrEmpty(ddluserexceptioncategory))
{
ddluserexceptioncategory = ddluserexceptioncategory.Trim();
}
if (ddluserexceptioncategory == "User Management")
{
//Bind the data to the class object(_clsObj)
if (files != null)
{
TempData["FileName"] = files;
_clsObj.Files = files;
}
TempData["SecondViewData"] = _clsObj;
return RedirectToAction("ExceptionType", "Home", new { id = 0, regionId = _clsObj.RegionId, status1 = "New,In Progress", keyword1 = string.Empty });
}
}
string regions = "", statusValue = "";
if (form != null)
{
regions = form["hiddenregionselected"] + "";
statusValue = form["hiddenstatusselected"] + "";
}
return RedirectToAction("homepage", "Home", new { region = regions, status = statusValue });
}
非常感谢任何建议或帮助。
答案 0 :(得分:3)
我的猜测是问题来自于使用TempData将这些数据从您的标记中提取到控制器,反之亦然。
您可能知道,在下一个请求完成后,您放入TempData的任何内容都会被丢弃(Using Tempdata in ASP.NET MVC - Best practice,http://www.codeproject.com/Articles/476967/What-is-ViewData-ViewBag-and-TempData-MVC-Option)。
我建议尝试使用ViewBag来证明这个理论。如果证明你可以考虑将这些数据作为复杂对象的一部分传递而不是使用MVC的数据字典。