我正在使用asp.net mvc5。我想在不使用Ajax的情况下将字符串数组从视图传递到控制器。有人可以帮忙吗?
这是控制器,值将在packagelist []中获取
public ActionResult Create(Business business, string loc, string serv, string[] packagelist)
{
try
{
if (ModelState.IsValid)
{
var a = locationIds;
business.ServiceId = db.Services.Where(x => x.Title ==serv).Select(x => x.Id).SingleOrDefault();
business.LocationId = db.Locations.Where(x => (x.Title + " (" + x.State + "), " + x.PostalCode)==loc).Select(x => x.Id).SingleOrDefault();
db.Businesses.Add(business);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
foreach(var error in ModelState.Values)
{
foreach(var er in error.Errors)
ModelState.AddModelError("", er.Exception.ToString());
}
}
ViewData["Packages"] = db.BusinessPackages.Select(x => new SelectListItem
{
Text = x.Package,
});
return View(business);
}
catch(Exception ex)
{
ModelState.AddModelError("", ex);
return View(business);
}
}
在视图上创建了隐藏的输入
<input type="hidden" name="packagelist" id="packagelist" value="" />
然后通过此功能设置此隐藏字段的值
$("#theform").submit(function (e) {
e.preventDefault();
var locdiv=$("#maindiv");
var locations = locdiv.children();
var loc = [];
for (var i = 0; i < locations.length; i++)
{
loc.push(locations.eq(i).text());
}
// SaveLocations(loc);
$("#packagelist").val(loc);
$("#theform").submit();
现在的主要问题是,当我通过Jquery设置输入的值并将其提交给控制器时,控制器将值的数组视为单个值。
我认为您可以使用Cookie。
在JS中,document.cookie =“ CookiesName =” + value +“;” +“ 365; path = /”;
在Controller中,变量数据= Request.Cookies [“ CookiesName”]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句