這是字面上第五天我試圖解決這個問題。函數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