У меня есть ситуация, когда я получаю данные от вызова ajax. Я хочу вызвать метод действия и передать данные в качестве аргументов. Данные, переданные методу действия, должны быть сопоставлены с объектными свойствами в списке параметров. Вот мой класс, который называется FullQuestion.Как передать сложный объект JSON в методе mvc action?
public class FullQuestion : Question
{
public string Title { get; set; }
public string Content { get; set; }
public List<Tag> Tags { get; set; }
}
Вот мой метод Ajax вызова
var finalTagResultText = {Title: "title", Content: "content",Tag: { tagName: "tname", tagDescription: "tdesc"},Tag: { tagName: "tname1", tagDescription: "tdesc1"}};
$.ajax({
url: '@Url.Action("AskQuestion", "Dashboard")',
type: "POST",
data: JSON.stringify(finalTagResultText),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
window.location.href = "@Url.Action("Questions", "Dashboard")";
}
});
Вот мой метод действия.
[HttpPost]
[ActionName("AskQuestion")]
public void AskQuestion_Post(FullQuestion question)
{
}
Я хочу, чтобы объект JSON передавался как объект FullQuestion. Я использовал библиотеку json2, чтобы использовать метод stingify. Я получаю текст заголовка и текста, но не объект тега. Любая идея, как я могу это сделать? Заранее спасибо.
Спасибо за вашу помощь человека. Это решило мою проблему. Что касается совета, я знаю, что размещение данных с помощью Ajax-звонка, вероятно, не самый лучший способ, но у меня есть ситуация, когда мои данные динамически берутся с помощью другого вызова ajax. Поэтому я не могу разместить их в классах помощника Html. Может быть, есть лучшее решение для этого случая, но я не знаю, как это сделать! Cheers :) –
В таком случае вам может понадобиться использовать ajax (но, не зная остальной части кода, трудно быть уверенным, что это лучший подход) –