这是字面上第五天我试图解决这个问题。函数SubmitSurvey的定义还没有找到,但我定义了它
我尝试在Razor View中调用一个按钮的方法,没有重定向到其他视图,只需单击按钮时调用一个简单的方法。
脚本看起来像:
<script>
function SubmitClick() {
var pid = $(this).data('personid');
var sid = $(this).data('surveyid');
var url = '@Url.Action("SubmitSurvey", "Person")';
$.post(url, { personid: pid, surveyid: sid }, function (data) {
alert('updated');
});
};
</script>
按钮看起来像:
<button class='mybutton' type='button' data-personid="@Model.Item1.Id" data-surveyid="@survey.Id" onclick="javascript:SubmitClick()">Click Me</button>
的PersonController方法看起来像:
public void SubmitSurvey(int personId, int surveyId) {
System.Diagnostics.Debug.WriteLine("UPDATING DATABASE");
}
全视图(这是PartialView ):
<script>
function SubmitClick() {
var pid = $(this).data('personid');
var sid = $(this).data('surveyid');
var url = '@Url.Action("SubmitSurvey", "Person")';
$.post(url, { personid: pid, surveyid: sid }, function (data) {
alert('updated');
});
};
</script>
@using WebApplication2.Models
@model System.Tuple<Person, List<Survey>>
<hr />
<h1>Surveys</h1>
<input type="button" id="Coll" value="Collapse" onclick="javascript:CollapseDiv()" />
@*<p>
Number of Surveys: @Html.DisplayFor(x => Model.Item2.Count)
</p>*@
@{int i = 1;}
@foreach (var survey in Model.Item2) {
using (Html.BeginForm()) {
<h2>Survey @(i)</h2>
<p />
@Html.EditorFor(x => survey.Questions)
<button class='mybutton' type='button' data-personid="@Model.Item1.Id" data-surveyid="@survey.Id" onclick="javascript:SubmitClick()">Click Me</button>
}
i++;
<hr style="background-color:rgb(126, 126, 126);height: 5px" />
}
<hr />
的问题是,当我按一下按钮:
我得到运行时错误说是没有的定义:"SubmitClick"
。
出于好奇,你有jQuery所以你为什么直接在HTML元素上编写事件,比如它是1999? – 2014-08-29 18:28:04
你可以发布视图生成的整个HTML吗? – 2014-08-29 18:34:21
[在ASP .NET MVC Razor视图中将关联脚本与按钮](http://stackoverflow.com/questions/25559610/associating-script-with-a-button-in-asp-net-mvc-razor -view) – 2014-08-29 18:35:41