我的一个WebGrid列中有一个按钮。如果单击该按钮,我将使用以下代码弹出一个窗口:
window.open('/Home/Message', '_blank', 'toolbar=yes, scrollbar=yes, resizable=yes, top=500, left=500, width=400, height=400');
“消息”是我创建的另一个填充弹出窗口的视图。我需要能够将行对象传递到该窗口以进行特定按钮按下。我认为有办法做到这一点。
这是我的消息ActionResult:
public ActionResult Message()
{
var model = new MessageViewModel();
return View(model);
}
但我真的想在行对象的方法上有一个参数。
编辑:更多细节。
所以我的webgrid列中有一个按钮,如下所示:
grid.Column(header: "Fault", format: (item) =>
{
if (item.Fault != null)
{
return new HtmlString("<input type='submit' id='btnShowFault' value='Fault' />");
}
return "";
}))
这是点击它时调用的javascript:
$(function () {
$("#btnShowFault").click(function (e) {
e.preventDefault();
window.open('/Home/Message', '_blank', 'toolbar=yes, scrollbar=yes, resizable=yes, menubar=no, top=200, left=500, width=400, height=250');
});
});
所以我猜我真正需要的是两倍。
我认为这是可能的,因为在wpf和silverlight这样的事情中这很容易做到。
答案 0 :(得分:0)
尝试使用此
describe("Testing MajorObjectsCtrl", function () {
//checking dataFactory.get called only once
it("should call dataFactory.get and called only once", function () {
scope.currentAppId = mockApplicationId;
scope.applications = applicationsMockData;
scope.itemsPerPage = 10;
$controller('AppSettingCtrl',
{
$scope: scope,
dataFactory: mainmockdataFactory
});
expect(mockdataFactory.get.calls.count()).toBe(0);
scope.currentAppId = mockApplicationId;
scope.majorObjects.slice();
scope.loadMajorObjects();
scope.$digest();
expect(mockdataFactory.get).toHaveBeenCalled();
expect(mockdataFactory.get.calls.count()).toBe(1);
});
window.open('/Home/Message?field1=value1&field2=value2...', '_blank',
'toolbar=yes, scrollbar=yes, resizable=yes, top=500, left=500, width=400,
其中
height=400');
class MessageViewModel()
{
public string fireld1{get; set;}
public string fireld2{get; set;}
...............................
答案 1 :(得分:0)
我最后放弃了window.open而是做了一个对话。除了文本之外,还有其他任何事情都很困难。