gpt4 book ai didi

asp.net-mvc - 无法通过剑道上传将附件从一个 View 移动到另一个 View

转载 作者:行者123 更新时间:2023-12-02 05:30:24 24 4
gpt4 key购买 nike

我们正在开发 Kendo MVC UI,我们将数据从一个 View 发送到另一个 View ,所有数据(testbox、下拉列表)都将传递到下一个 View ,除了附件(pdf、xlsx)之外。

下面是我们编写的 Controller 中的代码,用于从 View 捕获并保存数据并将相同的数据传递到另一个 View 并将数据绑定(bind)到kendo控件(也上传控件)

 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 });
}

下面是我们将请求绑定(bind)到第二个的代码

  @if (TempData["FileName"] != null)
{
IEnumerable<HttpPostedFileBase> firstFile = (IEnumerable<HttpPostedFileBase>)TempData["FileName"];

<div class="k-dropzone">
<div class="k-button k-upload-button">
<input name="files" type="file" data-role="upload" multiple="multiple" autocomplete="off" tabindex="-1" class="valid" style="display: none;">
<input id="files" name="files" type="file" data-role="upload" multiple="multiple" autocomplete="off">
<ul id="files1" class="k-upload-files k-reset">

@foreach (var file in firstFile)
{
string filename= Path.GetFileName(file.FileName);
<li class="k-file" data-uid="7aa03676-4dac-468e-b34a-99ac44d23040">
<span class="k-icon k-success">uploaded</span>
<span class="k-filename" title="@filename">@filename</span>
<strong class="k-upload-status">
<span class="k-icon k-delete"></span>
</strong>
</li>
}
</ul>

</div>
</div>
<script>
jQuery(function()
{jQuery("#files").kendoUpload(
{"select":uploadselect,
"localization":{"select":"Browse file",
"headerStatusUploading":"uploading..",
"headerStatusUploaded":"uploded.."},
"async":{"saveUrl":"/Home/Save",
"autoUpload":false,"removeUrl":
"/Home/Remove"}});});

</script>
}
else
{
@(Html.Kendo().Upload().Name("files").Async(a => a.Save("Save", "Home").Remove("Remove", "Home").AutoUpload(false)).Multiple(true).Messages(m =>
{
m.Select("Browse file");

}).Events(events => events.Select("uploadselect")))

}

非常感谢任何建议或帮助。

最佳答案

我的猜测是,问题来自于使用 TempData 将这些数据从标记获取到 Controller ,反之亦然。

您可能知道,您放入 TempData 的所有内容都会在下一个请求完成后被丢弃( Using Tempdata in ASP.NET MVC - Best practicehttp://www.codeproject.com/Articles/476967/What-is-ViewData-ViewBag-and-TempData-MVC-Option )。

我建议尝试使用 ViewBag 来证明这个理论。如果事实证明,您可能会考虑将此数据作为复杂对象的一部分传递,而不是使用 MVC 的数据字典。

关于asp.net-mvc - 无法通过剑道上传将附件从一个 View 移动到另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39167571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com