我对MVC很新,所以这可能是一个非常新手的问题。我正在玩一个产品目录。我有一个产品列表,我想以表格格式(表格或div)显示。每行将显示产品信息,并有两个“编辑和删除”链接。我想使用Jquery Ajax向我的控制器提交请求。对于编辑,我想显示模态对话框。要删除,我想从目录中删除该产品。这些操作中的每一个都将在完成后更新网格。
这是一些伪代码:
型号:
public class ProductModel
{
public string Name { get; set; }
public string Description { get; set; }
public int Id { get; set; }
public bool IsReadOnly { get; set; }
}
控制器:
public class ProductController : Controller
{
//
// GET: /Product/
public ActionResult Edit(ProductModel product)
{
}
public ActionResult Delete(ProductModel product)
{
}
}
修改视图:
@model Generic.Controller.Models.ProductModel
if Model.IsReadOnly
Render display editor
else
Render editor
列表视图:
@model Generic.Controller.Models.ProductModel
@using (Html.BeginForm())
{
//for each model item
<div class="some-css">
<div class="column-div">
//display the model
</div>
<div class="column-div">
//display the edit link
</div>
<div class="column-div">
//display the delete link
</div>
</div>
}
备用列表视图 - 从列表视图呈现的局部视图
每个模型//:
@using (Html.BeginForm()) //id this form with the product id?
{
//for each model item
<div class="some-css">
<div class="column-div">
//display the model
</div>
<div class="column-div">
//display the edit link
</div>
<div class="column-div">
//display the delete link
</div>
</div>
}
这是一些骨架Javascript:
var open = function (methodName, url) { $("#dialogDiv").dialog({ buttons: { Save: function () { var form = $(options.formToPost); $.ajax({ type: "POST",
这里有什么?通常我可以:
url: form.attr('action'),
data: form.serialize()
但这是否意味着每个实体的表单?
success: function (data, status, xhr) {
if (data.IsValid) {
//how do I identify the div I need to update?
} else {
}
}
});
},
Cancel: function () {
$("#dialogDiv").dialog('close');
$("#dialogDiv").empty();
}
}
});
$.ajax(
{
Type: methodName,
url: url,
success: function (data, status, xhr) {
openDialog(data);
}
});
function openDialog(data) {
$("#dialogDiv").html(data);
$("#dialogDiv").dialog('open');
}
};
return {
open: open
};
以下是我的问题:
谢谢,
答案 0 :(得分:0)
如果你想用jQuery处理所有事情,它会变得有点棘手,因为你需要能够在客户端更新表。