JQuery将额外参数传递到Ui对话框
我正在为我的问题寻找解决办法 我正在使用MVC Razor创建一个网站 在产品列表中,我想打开一个弹出窗口(Jquery对话框),其中可以打开部分视图 但我不能让它工作 这就是我所拥有的:JQuery将额外参数传递到Ui对话框,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我正在为我的问题寻找解决办法 我正在使用MVC Razor创建一个网站 在产品列表中,我想打开一个弹出窗口(Jquery对话框),其中可以打开部分视图 但我不能让它工作 这就是我所拥有的: <table style="width:100%;" cellpadding="0" cellspacing="10" > <tr> <th>Acties</th> <th>Code</th>
<table style="width:100%;" cellpadding="0" cellspacing="10" >
<tr>
<th>Acties</th>
<th>Code</th>
<th>omschrijving</th>
<th>Status</th>
<th>Afbeeldingen</th>
</tr>
@foreach (var item in Model)
{
Product P1 = item.Product_1;
Product P2 = item.Product_2;
<tr>
<td>
@Html.ActionImage("AddMedia", "Upload", new { id = P1.ProductId }, "../Site_images/New Document.png", 20, 20, "Afbeelding toevoegen")
@Html.ActionImage("Details", "Products", new { id = P1.ProductId }, "../Site_images/Get Info Blue Button.png", 20, 20, "Details")
@Html.Image("Site_images/Appointment Cool.png", 20, 20, "Reserveren")
<button value='@P1.ProductId' id="opener">open the dialog</button>
</td>
<td>@P1.ProductCode</td>
<td>@P1.Description</td>
<td></td>
<td>@P1.Media.Count()</td>
</tr>
if (P2 != null)
{
<tr>
<td>
</td>
<td>@P2.ProductCode </td>
<td>@P2.Description</td>
<td></td>
<td>@P2.Media.Count()</td>
</tr>
}
}
</table>
活动
代码
OMSCHRIJING
地位
阿弗比尔丁根
@foreach(模型中的var项目)
{
产品P1=项目产品1;
产品P2=项目产品2;
@ActionImage(“AddMedia”、“Upload”、new{id=P1.ProductId}、../Site_images/new Document.png”、20、20、“Afbeelding toevoegen”)
@ActionImage(“详细信息”,“产品”,新的{id=P1.ProductId},”../Site_images/Get Info Blue Button.png),20,20,“详细信息”)
@Html.Image(“Site_images/Appointment Cool.png”,20,20,“Reserveren”)
打开对话框
@P1.1产品代码
@P1.说明
@P1.Media.Count()
如果(P2!=null)
{
@P2.ProductCode
@P2.说明
@P2.Media.Count()
}
}
我是一个对话框
var值;
$(函数(){
$('#dialog')。dialog({
自动打开:错误,
宽度:400,
可调整大小:false,
标题:"详情",,
莫代尔:是的,
打开:功能(事件、用户界面){
$(this.load('@Url.Action(“AddMedia”,“Upload”,new{id=“+TheValue+”)));
},
按钮:{
“关闭”:函数(){
$(此).dialog(“关闭”);
}
}
});
$(“#开场白”)。单击(函数(){
$('dialog')。dialog('open');
TheValue=$(this.attr(“value”);
});
});
如您所见,我已将产品Id传递给每个按钮(作为值)
现在,我想做的是,当您单击按钮时,按钮的值将传递给对话框打开事件,因此partioal视图将显示所选产品的数据
希望有人能帮忙。可能只是:
$('#opener').click(function () {
TheValue = this.value;
$('#dialog').dialog('open');
});
我就是这样解决的,
只需将变量传递给JScript函数:
@{
var HostHeader = Request.Headers["host"];
var url = "http://" + HostHeader + Url.Content("~/Upload/AddMedia/");
}
<div id="dialog" style="display: none" title="Dialog Title"></div>
<a href="javascript:void(0)" onclick="javascript:ShowDialog('@P1.ProductId')">Show Dialog</a>
<script type="text/javascript">
function ShowDialog(id)
{
$('#dialog').dialog({
position: 'top',
autoOpen: false,
width: 500,
height:500,
resizable: false,
title: 'Upload image',
modal: true,
open: function (event, ui) {
$(this).load('@url' +id);
},
buttons: {
"Close": function () {
$(this).dialog("close");
}
}
})
</script>
@{
var HostHeader=Request.Headers[“主机”];
var url=“http://”+HostHeader+url.Content(“~/Upload/AddMedia/”);
}
函数显示对话框(id)
{
$('#dialog')。dialog({
位置:'顶部',
自动打开:错误,
宽度:500,
身高:500,
可调整大小:false,
标题:“上传图像”,
莫代尔:是的,
打开:功能(事件、用户界面){
$(this.load(“@url”+id);
},
按钮:{
“关闭”:函数(){
$(此).dialog(“关闭”);
}
}
})
你的“渲染部分视图”在哪里?你只创建了操作,而不是使用部分视图。这就是问题所在…我不知道如何使其工作以及使用什么…是的,我注意到这是错误的顺序,但真正的问题是如何使此代码工作:$(this).load('@Url.Action(“AddMedia”,“Upload”,new{id=“+TheValue+”})”;如何使用@UrlAction,然后添加变量TheValue。我还尝试将url“固定为:$(this).load(“”+TheValue);但什么也没有发生。。
@{
var HostHeader = Request.Headers["host"];
var url = "http://" + HostHeader + Url.Content("~/Upload/AddMedia/");
}
<div id="dialog" style="display: none" title="Dialog Title"></div>
<a href="javascript:void(0)" onclick="javascript:ShowDialog('@P1.ProductId')">Show Dialog</a>
<script type="text/javascript">
function ShowDialog(id)
{
$('#dialog').dialog({
position: 'top',
autoOpen: false,
width: 500,
height:500,
resizable: false,
title: 'Upload image',
modal: true,
open: function (event, ui) {
$(this).load('@url' +id);
},
buttons: {
"Close": function () {
$(this).dialog("close");
}
}
})
</script>