У меня есть простой вид бритвы с кнопкой, которая должна добавить новую запись в таблицу в моей базе данных SQL. К кнопке прикреплена функция ajax, которая вызывает контроллер.
Я пробовал два разных контроллера;оба контроллера работают, но добавляют 2 новые записи вместо одной. См. Ниже фрагменты кода:
Событие нажатия кнопки в виде бритвы
$('#addLike')
.click(function (e) {
var proposalId = 12;
var url = "@Url.Action("AddLike", "Proposal")/?proposalId=" + proposalId;
$.ajax({
type: "POST",
url: url,
dataType: "json",
traditional: true,
success: function(response) {
window.location.href = actions.common.proposals;
}
});
});
Модель класса
public class Proposal_Likes
{
public int? Proposal_Id { get; set; }
public int Id { get; set; } (... Identity, DatabaseGenerated)
}
Контроллер
public ActionResult AddLike(int proposalId)
{
var proposal_Like = new Proposal_Likes
{
Proposal_Id = proposalId
};
UnitOfWork.InsertOrUpdate(proposal_Like);
UnitOfWork.Commit();
return Json("Success");
}
альтернативный контроллер
public ActionResult AddLike(int proposalId)
{
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlCommand cmd = new SqlCommand("addProposalLike", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@propsalId", SqlDbType.Int).Value = proposalId;
con.Open();
cmd.ExecuteNonQuery();
}
}
return Json("Success");
}
Я работал над этим почти 2 дня, отладил весь код, но могуне найти причину или ключ, где копать глубже. Когда я выполняю хранимую процедуру SQL вручную внутри SSMS, она добавляет только одну запись. Будем благодарны за любую помощь!
Дополнительная информация: Нет представлений, никаких других кнопок в представлении