Я использую Asp.net MVC 3 и библиотеку Json.net.Сериализовать только часть класса модели представления
У меня есть модель класса модели FranchiseInfo с несколькими свойствами.
public class FranchiseInfo
{
public string FolderName { get; set; }
public string FullName { get; set; }
public List<string> TestDropDown { get; set; }
public void Initialize()
{
TestDropDown = new List<string>
{
"Test1",
"Test2"
};
}
public void SetDefaultValues()
{
FolderName = "SomeData";
FullName = "SomeOtherData";
}
}
У меня есть контроллер FranchiseData, который сериализует данные модели модели Json.
public ActionResult FranchiseData(string network)
{
JsonNetResult jsonNetResult = new JsonNetResult { Formatting = Formatting.Indented };
FranchiseInfo franchiseInfo = new FranchiseInfo();
franchiseInfo.Initialize();
jsonNetResult.Data = franchiseInfo;
return jsonNetResult;
}
Контроллер имеет один параметр, называемый сетью. Когда первая страница загружается, я хочу, чтобы все свойства из модели просмотра FranchiseInfo были сериализованы и отправлены в представление. В этом случае значение сети равно null. Все идет нормально.
$.getJSON("Home/FranchiseData", function (data) {
// get all FranchiseInfo properties
}
Когда конкретное событие происходит, я делаю новый запрос на те же FranchiseData контроллера передачи параметры сети, который связывается с параметром-регулятора.
onTemplateChange = function (value) {
var network = $("#networks :selected").val();
$.getJSON("Home/FranchiseData", { network: network }, function (data) {
// get only FolderName and FullName properties
});
}
Теперь я хочу, чтобы вызвать SetDefaultValues () метод Franchise Info вид модели класса, который устанавливает значения по умолчанию для некоторых из моих свойств и отправить только эти свойства вернуться к просмотру.
Так что в основном я использую тот же Contoller FranchiseData для сериализации данных модели модели из FranchiseInfo. Когда сеть параметров имеет значение null, все свойства FranchiseInfo должны быть сериализованы (FolderName, FullName и TestDropDown). Когда я вызываю контроллер агаинга и передаю значение сетевому параметру, я хочу вызвать метод SetDefaultValues (), установить некоторые свойства и снова сериализовать только эти свойства и отправить их на сервер (только для FolderName и FullName). Есть ли способ сделать это? Любая помощь будет оценена. Спасибо!
Благодарим вас за ответ. Я решил использовать анонимный класс для сериализации только тех свойств, которые мне нужны. – Mdb