0
我有一个模块,从控制器发送数据来查看。它有多行,正确显示,因为我想要的。现在,在用户进行了一些更改之后,我再次尝试在actionresult的帮助下将更改保存在数据库中。但是当我尝试它说我的型号是空/空去取值,但它不是...我没有得到什么问题...在此先感谢...模型为空时,试图从视图中获取数据到控制器
这里是我的模型:
public class ManageAppsModel
{
public string appname { get; set; }
public int id { get; set; }
public bool chkbillboard { get; set; }
}
这是我的观点:
@model IEnumerable<Nd.Models.ManageAppsModel>
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<br />
<h2 style="color:#80afdd;font-size:14px;">
<strong> List of Existing Apps:</strong>
</h2>
<br />
<div class="section-copy">
<table>
@foreach (var item in Model)
{
<tr>
@if (Context.User.Identity.Name == "admin")
{
<td style="width:50px;">
@if (@item.chkbillboard == true)
{
<input name ="chk1" class="myCheckbox" type="checkbox" value="@item.chkbillboard" checked="checked" />
}
else
{
<input name ="chk2" class="myCheckbox" id="chkbox" type="checkbox" value="@item.chkbillboard" onclick="return chkbox();" />
}
</td>
}
<td style="width:200px;">
@item.appname
</td>
<td style="width:50px;">
@Html.ActionLink("Edit", "UpdateAPIForm", new { @id = item.id, appname = item.appname })
</td>
</tr>
}
</table>
</div>
<br/><br/>
if (Context.User.Identity.Name == "admin")
{
<div>
<input type="submit" name="Upload" value="Upload new flash info message" />
</div>
}
}
这里是我的ActionResult:
[Authorize]
public ActionResult ManageApps(String username)
{
var a = HttpContext.User.Identity.Name;
var context = new ndCorp_SiteEntities();
if (a == "admin")
{
var viewModel1 = from dc in context.DevContactInfoes
join dm in context.DevMarketplaceInfoes on dc.AppName equals dm.AppName
select new ManageAppsModel { appname = dc.AppName, id = dc.SNo, chkbillboard = dc.billboard.Value }
;
return View(viewModel1);
}
else
{
var viewModel = from du in context.DevUserInfoes
join dc in context.DevContactInfoes on du.UserName equals dc.UserName
join dm in context.DevMarketplaceInfoes on dc.AppName equals dm.AppName
where du.UserName == a
select new ManageAppsModel { appname = dc.AppName, id = dc.SNo };
return View(viewModel);
}
}
[Authorize]
[HttpPost]
public ActionResult ManageApps(IEnumerable<ManageAppsModel> apps)
{
var user = HttpContext.User.Identity.Name;
var context = new ndCorp_SiteEntities();
foreach (var ManageAppsModel in apps)
{
if (ManageAppsModel.chkbillboard == true)
{
Response.Write("hello");
}
}
return RedirectToAction("ManageApps", new { username = user });
}
您的HTML表单不包含任何输入字段(您的复选框不在表格之外)。你的复选框也没有'name'属性。所以我真的不知道你希望发送到你的服务器。 – 2013-03-12 22:14:56
我已经更新了我的视图,但仍然在操作结果中我的“应用”值为空 – user207888 2013-03-12 22:25:05
那么您的复选框仍然没有名称,所以当您提交表单时,没有任何内容会发送到您的控制器操作是完全正常的。 – 2013-03-12 22:26:15