我试图将按钮的值传递给模态对话框。我的按钮事件如下所示:
//Dialog Function=============================================================
//declaring the function
$(function () {
$('#dialog').dialog({
autoOpen: false,
hide: 'fade',
show: 'fade',
width: 350,
height: 270,
resizable: false,
modal: true,
dialogClass: 'dialog',
open: function (event, ui) {
$(this).load('@Url.Action("AddFiles", "ProjectDetails")');
}
});
});
//Showing the dialog when one of the 3 buttons is clicked.
$("button[name='Add']").click(function () {
$('#type').val($(this).val());
$('#dialog').dialog('open');
});
//=========================================================================
Iim将值传递给我的模态div中的隐藏字段:
@Html.Hidden("type")
所以我需要把它变成一个HiddenFor,为此我需要传递一个modelview类 在我的AddFiles方法
public ActionResult AddFiles()
{
return View();
}
这将是我的模特:
public class FileViewModel
{
public string Name { get; set; }
public string type { get; set; }
public string comments { get; set; }
}
但我不知道如何将按钮的值赋予我将创建的模型(模型将具有字符串类型属性)是否有办法做到这一点或我没有选择与独立隐藏工作领域?
答案 0 :(得分:1)
我遇到了同样的事情,有一个简单的解决方案。你需要传入id然后打开对话框。这是php中的一个例子。我在mvc中做同样的事情,所以一旦我有了发布它的语法。
这是链接。 http://groups.google.com/group/jquery-en/browse_thread/thread/13a3a580b4128d3d
另外,我忘了提到如果你将数据传递给模型,你需要一个构造函数来创建该类的实例,即:
var DataBuilderList = new List<FileViewModel>();
DataBuilderList.Add(new FileViewModel{ name = "thename", type = "thetype", comments = "comments" });
您需要从控制器调用一个方法,该方法在传递给操作后执行该操作。
如果我错了或有任何评论,请告诉我。好运“。
顺便说一下,它的语法与jquery相同:
open: function () { $(this).load('ProjectDetails/AddFiles', { : id }), function () { }
}
你需要在按钮名称的动作结果中添加一个参数,但这应该适用于我认为你正在做的事情。