我在这一行的"button"上得到标题错误:
$(this).load("@Url.Action("defectsPartial", new { id = button})");
<script>
$(function () {
$("#myModal").dialog({
autoOpen: false,
height: 600,
width: 700,
modal: true,
open: function (event, ui) {
var button = document.getElementById("button").value;
$(this).load("@Url.Action("myPartial", new { id = button})");
},
buttons:{
"Close": function () {
$(this).dialog("close");
}
}
});
$(".launch").click(function () {
$("#myModal").dialog("open");
});
});
</script>
下面是带有按钮的函数:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
<button class="launch" value= "@item.Id" id="button">Go</button>
</td>
</tr>
}
Javascipt变量在razor中将无法访问。
这样做:
var url = '@Url.Action("defectsPartial")';
url = url+"?id="+button;
$(this).load(url);
您使用button
作为变量,但它必须是字符串。
$(this).load('@Url.Action("defectsPartial", new { id = "button"})');
我也不确定是否有这样的html元素button
。也许你应该用<input type="button" />
?
问题是,那个Url。Action在编译razor视图时被评估,但是button变量是javascript,它在客户端被评估。
你必须手动添加id:
<script>
$(function () {
$("#myModal").dialog({
autoOpen: false,
height: 600,
width: 700,
modal: true,
open: function (event, ui) {
var button = document.getElementById("button").value;
$(this).load("@Url.Action("myPartial")" + button);
},
buttons:{
"Close": function () {
$(this).dialog("close");
}
}
});
$(".launch").click(function () {
$("#myModal").dialog("open");
});
});
</script>