Вот и странная проблема. Я вызываю ActionResult в своем контроллере из jQuery на представлении.mvc3 actionresult код, повторяющийся
Вот JQuery
$(document).ready(function() {
$('.addNoteLink').button();
$('.addNoteLink').click(function() {
var cid = $('#CaseID').val();
var notetext = $('#NoteText').val();
var url = "/Cases/AddNoteText";
$.ajax({
type: "POST",
url: url,
data: { id: cid, note: $('#NoteText').val() }
});
});
});
Здесь метод контроллера:
public ActionResult AddNoteText(int id, string note)
{
try
{
if (ModelState.IsValid)
{
CaseNotes notes = new CaseNotes
{
CasesID = id,
NoteDate = DateTime.Now,
NoteText = note
};
db.CaseNotes.Add(notes);
db.SaveChanges();
}
}
catch
{
}
return RedirectToAction("Edit", id);
}
Вот HTML, связанные с JQuery:
<div class="editor-label">
@Html.Label("Enter notes here and click Add Note Text")
</div>
<div class="textarea-field">
<input id = "NoteText" type="text" />
</div>
@Html.ActionLink("Add Note Text", "AddNoteText", new { id = Model.CasesID }, new { @class = "addNoteLink" })
Когда JQuery вызывает этот метод , если я следую с точкой останова, параметры проходят правильно, ModelState действителен, он переходит в отмечает объект и присваивает значения и т. д. Когда точка останова попадает в db.CasesNotes.Add (примечания), точка останова возвращается в начало функции и снова опускается до тех пор, пока она не попадет в объект заметок, а затем перейдет к db.SaveChanges() , а затем вернется к верхнее AGAIN, проходит через метод и ошибки, потому что параметры были очищены этой точкой. Однако исходная запись вставлена.
Любые мысли?
Я помню, что-то вроде этого. Я думаю, что это связано с этим именем «id» «int id» и маршрутизацией. Нужно попытаться вспомнить –
@bart это одно странно – Ryan
не могли бы вы добавить разметку html, связанную с javascript? – Jorge