ajaxには少し問題があります。だから私はあなたに私の行動を示すつもりです。AjaxはフォームIDをMVCコントローラに送信できません
フォーム:
<form id="QuestionForm">
@Html.TextBoxFor(model => model.Body, new { @class = "form-control", @placeholder = "Body" })
@Html.TextBoxFor(model => model.Text, new { @class = "form-control", @placeholder = "Text" })
</form>
ここに私のスクリプトとAjaxコードです:
$("#btnSubmit").click(function() {
var data = $('#QuestionForm').serialize();
$.ajax({
type: "POST",
url: "/Survey/AddQuestion",
data: {data, @Model.Survey.Id},
success: function() {
$("#AddQuestion").modal("hide");
//alert("Survey Added");
location.reload();
}
})
})
ここに私のコントローラのアクションがあります:
public JsonResult AddQuestion(SurveyQuestion model, int id)
{
SurveyQuestion question = new SurveyQuestion();
question.Body = model.Body;
question.CreatedOn = DateTime.Now;
question.ModifiedOn = DateTime.Now;
question.Priority = 0;
question.SurveyId = id;
question.Text = model.Text;
question.Type = QuestionType.Text;
_db.SurveyQuestions.Add(question);
_db.SaveChanges();
return Json(question, JsonRequestBehavior.AllowGet);
}
私は、コードのすべての部分に必要事項を記入しませんでした後でその処理を行うつもりであるため、その一部はハードコードされています。しかし、問題は2つのことを送信することです。 IDを送信してコントローラからIDを削除しないと、シリアル化されたモデルはうまく送信されますが、両方を送信するとIDが取得されますが、無効である)。これをどうやって解決するのですか?
あなたは – Krishjs
ができるクエリ文字列としてIDを渡すことができないポストに複数のパラメータを渡して、これを試してみてくださいか、クエリ文字列を使用して渡すことができますあなたはそれを答えとして貼り付けてください? – HighSepton
ありがとうございました。FromUri – Krishjs