// ModelStateを追加 public static void AddModelState(this ITempDataDictionary tempData, ModelStateDictionary modelState) { // TempDataがシリアライズできるのは単純データのみ // JSON文字列をTempDataに格納する var json = ModelStateDictionaryJsonSerializer.Serialize(modelState); tempData.Add(_modelStateKey, json); }
// ModelStateを取得 public static ModelStateDictionary GetModelState(this ITempDataDictionary tempData) { var json = tempData[_modelStateKey] as string; if (string.IsNullOrWhiteSpace(json)) { return(null); } return(ModelStateDictionaryJsonSerializer.Deserialize(json)); }
public void Serialize_RawValueIsStringArray() { // Arrange var modelStates = new ModelStateDictionary(); modelStates.SetModelValue("k", new[] { "r1", "r2" }, "a"); // Act var json = ModelStateDictionaryJsonSerializer.Serialize(modelStates); // Assert Assert.Equal(_jsonRawValueIsStringArray, json); }
public void Serialize_RawValueIsNull() { // Arrange var modelStates = new ModelStateDictionary(); modelStates.SetModelValue("k", null, "a"); // Act var json = ModelStateDictionaryJsonSerializer.Serialize(modelStates); // Assert Assert.Equal(_jsonRawValueIsNull, json); }
public void Deserialize_RawValueIsNull() { // Arrange // Act var modelStates = ModelStateDictionaryJsonSerializer.Deserialize(_jsonRawValueIsNull); // Assert Assert.Single(modelStates); var(key, modelState) = modelStates.First(); Assert.Equal("k", key); Assert.Null(modelState.RawValue); Assert.Equal("a", modelState.AttemptedValue); Assert.Empty(modelState.Errors); }
public void Deserialize_RawValueIsStringArray() { // Arrange // Act var modelStates = ModelStateDictionaryJsonSerializer.Deserialize(_jsonRawValueIsStringArray); // Assert Assert.Single(modelStates); var(key, modelState) = modelStates.First(); Assert.Equal("k", key); Assert.IsType <string[]>(modelState.RawValue); var rawValues = modelState.RawValue as string[]; Assert.Equal(2, rawValues.Length); Assert.Equal("r1", rawValues[0]); Assert.Equal("r2", rawValues[1]); Assert.Equal("a", modelState.AttemptedValue); Assert.Empty(modelState.Errors); }