C# MVC 4-保存在一个视图中对多个实体类中的对象所做的编辑?
我的一个视图显示了四个不同实体类的零到多个对象 我的目标是用一种简单的方法为所有四种实体类型编辑一个公共值 整个视图只有一个提交按钮,此提交按钮调用ActionResult,其中对所有可编辑值所做的更改应按如下方式存储(注意:这不起作用,因为签名似乎无效): 3)控制器执行其余操作:C# MVC 4-保存在一个视图中对多个实体类中的对象所做的编辑?,c#,asp.net-mvc,C#,Asp.net Mvc,我的一个视图显示了四个不同实体类的零到多个对象 我的目标是用一种简单的方法为所有四种实体类型编辑一个公共值 整个视图只有一个提交按钮,此提交按钮调用ActionResult,其中对所有可编辑值所做的更改应按如下方式存储(注意:这不起作用,因为签名似乎无效): 3)控制器执行其余操作: [HttpPost] public ActionResult UpdateStockPositionTicker(string key, string ticker) { i
[HttpPost]
public ActionResult UpdateStockPositionTicker(string key, string ticker)
{
if (ModelState.IsValid)
{
var stockposition = db.StockPositions.Find(Convert.ToInt32(key));
stockposition.BloombergID = ticker;
db.SaveChanges();
....
我认为总体方法可能有问题 如果您希望主动管理对象的编辑状态,那么可能需要一个更健壮的ajax解决方案 我个人会做一个“focusOut”绑定,并在focusOut时调用一个独特的操作来更新该状态,并且只更新该状态
这可能需要额外的体系结构开销,您无法或不会将其添加到项目中,但这将使项目更加灵活。我认为总体方法可能有问题 如果您希望主动管理对象的编辑状态,那么可能需要一个更健壮的ajax解决方案 我个人会做一个“focusOut”绑定,并在focusOut时调用一个独特的操作来更新该状态,并且只更新该状态
这可能需要额外的体系结构开销,您无法或不会将其添加到项目中,但这将使项目更加灵活。您应该拥有独立于实体类的ViewModel。在控制器中,您应该为所需的任何实体提供所有必要的更新。您应该拥有独立于实体类的ViewModel。在控制器中,您应该为您需要的任何实体提供所有必要的更新。Hm我想到了一个“解决方案”。。每个对象都有一个“保存”按钮。不过那真的很难看。嗯,我想到了一个“解决办法”。。每个对象都有一个“保存”按钮。不过,那真的很难看。你能举例说明控制器的外观吗?一个能够由四个实体组成的零到多个对象的签名会是什么样子?看看这个讨论。这里的讨论集中在如何显示两个不同的模型上,我已经做到了这一点。我只是不知道如何处理回发中的信息以更新所有对象。你能举个例子说明控制器的外观吗?一个能够由四个实体组成的零到多个对象的签名会是什么样子?看看这个讨论。这里的讨论集中在如何显示两个不同的模型上,我已经做到了这一点。我只是不知道如何处理回发中的信息以便更新所有对象。嗯,这可能是一个解决方案。就像一个可编辑文本框失去焦点时的Ajax回发。我要试试看@彼得,没错!这将允许每个文本框处理它自己的状态,而不是强迫整个表单一次发布。谢谢David,我现在可以使用它了(见我更新的问题)!好主意。嗯,这可能是个解决办法。就像一个可编辑文本框失去焦点时的Ajax回发。我要试试看@彼得,没错!这将允许每个文本框处理它自己的状态,而不是强迫整个表单一次发布。谢谢David,我现在可以使用它了(见我更新的问题)!好主意。
<input type="text" class="updateBloombergTicker StockPosition"
data-key="@stockposition.StockPositionID" style="width: 100px;"
value="@stockposition.BloombergID"/>
$(".updateBloombergTicker").blur(function () {
$this = $(this);
if ($this.hasClass("StockPosition")) {
AJAX("../Excel/UpdateStockPositionTicker",
{
key: $this.attr("data-key"),
ticker: $this.val()
}
);
}
if ($this.hasClass("BondPosition")) {
.......
[HttpPost]
public ActionResult UpdateStockPositionTicker(string key, string ticker)
{
if (ModelState.IsValid)
{
var stockposition = db.StockPositions.Find(Convert.ToInt32(key));
stockposition.BloombergID = ticker;
db.SaveChanges();
....