2

私は FromJsonAttribute ( Steve Sandersonによって作成された) を使用しました。これは非常に優れていますが、残念ながら、AllowHtml 属性に注意を払っていません。私は次のモデルを持っています:

public class HKNewsPaperViewModel
{
    public int Id { get; set; }

    public string UserId { get; set; }

    public string UserName { get; set; }

    public string RPublisher { get; set; }

    public string REditor { get; set; }

    public string Title { get; set; }

    public bool IsDraft { get; set; }

    public bool IsNew { get; set; }

    public List<HKNewsItemViewModel> NewsItems { get; set; }

    public HKNewsPaperViewModel()
    {
        NewsItems = new List<HKNewsItemViewModel>();
    }

}
public class HKNewsItemViewModel
{
    public int Id { get; set; }

    public string Title { get; set; }

    public string Link { get; set; }

    [AllowHtml]
    public string Body { get; set; }
}

私のコントローラーでは、次のようにデータを受け取ります。

    [HttpPost]
    public ActionResult New([FromJson] HKNewsPaperViewModel model)
    {
        return View();
    }

FromJson 属性は次のようになります。

public class FromJsonAttribute : CustomModelBinderAttribute
{
    private readonly static JavaScriptSerializer serializer = new JavaScriptSerializer();

    public override IModelBinder GetBinder()
    {
        return new JsonModelBinder();
    }

    private class JsonModelBinder : IModelBinder
    {
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            var stringified = controllerContext.HttpContext.Request[bindingContext.ModelName];
            if (string.IsNullOrEmpty(stringified))
                return null;
            return serializer.Deserialize(stringified, bindingContext.ModelType);
        }
    }
}

私の問題は、AllowHtml 属性が存在する html コンテンツを渡すことができないことです。どうもありがとう!

4

0 に答える 0