我在这一行的“按钮”上收到标题错误:
$(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>
}
答案 0 :(得分:2)
Javascript 变量。
这样做:
var url = '@Url.Action("defectsPartial")';
url = url+"?id="+button;
$(this).load(url);
答案 1 :(得分:1)
您使用button
作为变量,但必须是字符串。
$(this).load('@Url.Action("defectsPartial", new { id = "button"})');
此外,我不确定是否有button
这样的html元素。也许你应该使用<input type="button" />
?。
答案 2 :(得分:0)
问题是,在编译剃刀视图时会对Url.Action进行评估,但是按钮变量是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>