我有mvc3应用程序在这个我已经使用了两个部分视图1.controls 2.webgrid如何在MVC3中将数据保存到DataTable中?
内部控件我从实际的数据库表填充下拉列表。使用EF
在index.cshtml我有一种形式,需要从这些下拉列表中选择值,当按下插入按钮时,这些值应该去临时“DataTable”,并在webgrid中显示它...我'新手到MVC3,并不知道如何做到这一点。
Controls.cshtml
@model Mapping.Models.SecurityIdentifierMappingViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Mapping</legend>
<div class="editor-label">
@Html.Label("Pricing SecurityID")
</div>
<div class="editor-field">
@Html.HiddenFor(model => model.MappingControls.Id)
@Html.DropDownListFor(model => model.MappingControls.PricingSecurityID,
new SelectList(Model.PricingSecurities, "Value", "Text"),
"Select SecurityID"
)
@Html.ValidationMessageFor(model => model.MappingControls.PricingSecurityID)
</div>
<div class="editor-label">
@Html.Label("CUSIP ID")
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.MappingControls.CUSIP,
new SelectList(Model.CUSIPs, "Value", "Text"),
"Select CUSIP"
)
@Html.ValidationMessageFor(model => model.MappingControls.CUSIP)
</div>
<div class="editor-label">
@Html.Label("Calculation")
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.MappingControls.Calculation)
@Html.ValidationMessageFor(model => model.MappingControls.Calculation)
</div>
<p>
<input id="btnsubmit" type="submit" value="Insert" />
</p>
</fieldset>
}
HomeController.cs
public class HomeController : Controller
{
//
// GET: /Home/
mydataEntities dbContext = new mydataEntities();
DataRepository objRepository = new DataRepository();
//GET
public ActionResult Index(string userAction , int uid = 0)
{
var mappingobj = new SecurityIdentifierMappingViewModel();
mappingobj.MappingWebGridList = dbContext.SecurityIdentifierMappings.ToList();
mappingobj.MappingControls = new SecurityIdentifierMapping();
mappingobj.MappingControls.PricingSecurityID = 0;
mappingobj.MappingControls.CUSIP = string.Empty;
mappingobj.PricingSecurities = objRepository.GetPricingSecurityID();
mappingobj.CUSIPs = objRepository.GetCUSIP();
return View(mappingobj);
}
//POST
[HttpPost]
public ActionResult Index(SecurityIdentifierMappingViewModel objModel)
{
if (objModel.MappingControls.Id > 0)
{
if (ModelState.IsValid)
{
dbContext.Entry(objModel.MappingControls).State = EntityState.Modified;
try
{
dbContext.SaveChanges();
//objModel = new SecurityIdentifierMappingViewModel();
//return RedirectToAction("Index", "Home");
}
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{
throw;
}
}
}
//insert code
else
{
if (ModelState.IsValid)
{
dbContext.SecurityIdentifierMappings.Add(objModel.MappingControls);
try
{
dbContext.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{
throw;
}
}
}
return RedirectToAction("Index");
}
}
public class SecurityIdentifierMappingViewModel
{
public IEnumerable<SecurityIdentifierMapping> MappingWebGridList { get; set; }
public SecurityIdentifierMapping MappingControls { get; set; }
public List<SelectListItem> PricingSecurities { get; set; }
public List<SelectListItem> CUSIPs { get; set; }
}
目前使用SecurityIdentifierMapping从数据库中的第3表,其中将我的表格数据...但需要将其插入到“数据表”
我只是想将我的第三张表存储到临时的某个地方,所以我想我可以使用datatable任何其他选项?我是新的你可以告诉我怎么可以在我的情况下使用IQueryable或IEnumerable ... – Neo 2012-04-19 07:19:54
我希望上述更新有帮助。 – 2012-04-19 19:39:42