|
using System.Web.Mvc;
using System.IO;
using System.Collections.Generic;
namespace DataAnnotationAjax.Controllers.ControllerBase
{
public class BaseController : Controller
{
// This method helps to render a partial view into html string.
// http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/
// Credit: Kevin Craft
public string RenderPartialViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
var viewContext = new ViewContext(ControllerContext,
viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
// This method helps to get the error information from the MVC "ModelState".
// We can not directly send the ModelState to the client in Json. The "ModelState"
// object has some circular reference that prevents it to be serialized to Json.
public Dictionary<string, object> GetErrorsFromModelState()
{
var errors = new Dictionary<string, object>();
foreach (var key in ModelState.Keys)
{
// Only send the errors to the client.
if (ModelState[key].Errors.Count > 0)
{
errors[key] = ModelState[key].Errors;
}
}
return errors;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I have been working in the IT industry for some time. It is still exciting and I am still learning. I am a happy and honest person, and I want to be your friend.