我有Controller
ValidationController.cs
里面有方法        public String GetName()
        {
            var viewPageManager = new MyMvc.Helpers.RenderViewPage<System.Web.Mvc.ViewUserControl>();
            var control = viewPageManager.LoadViewControl("~/Controls/Test.ascx");
            return (viewPageManager.RenderView(control));
        }RenderViewPage类用于将一个MVC用户控件生成HTML内容为using System;
using System.IO;
using System.Web;
using System.Web.UI;namespace MyMvc.Helpers
{
    public class RenderViewPage<T> where T : System.Web.Mvc.ViewUserControl
    {
        private System.Web.Mvc.ViewPage m_pageHolder;        public T LoadViewControl(String path)
        {
            this.m_pageHolder = new MyViewPage();
            return (T)this.m_pageHolder.LoadControl(path);
        }        public String RenderView(T control)
        {
            StringWriter output = new StringWriter();
            this.m_pageHolder.Controls.Add(control);
            HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
            return output.ToString();
        }
    }
    public class MyViewPage : System.Web.Mvc.ViewPage
    {
        public override void VerifyRenderingInServerForm(Control control)
        {
            //base.VerifyRenderingInServerForm(control);
        }
    }
}
然后我的页面内容为<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.TextBox("txtName") %>
报错:

值不能为空。
参数名: viewContext 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentNullException: 值不能为空。
参数名: viewContext
源错误: 
行 1:  <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
行 2:  <%= Html.TextBox("txtName") %>
谢谢

解决方案 »

  1.   

    异常详细信息: System.ArgumentNullException: 值不能为空
    传入参数为空啊~~
      

  2.   

    传进去的就是null,所以这个方法应该没错,是调用方法的时,传入的参数有问题。你加以判断,不要传进去null
      

  3.   

    为什么会这样呢
    出错就出错在
    -------------
    <%= Html.TextBox("txtName") %>
    --------------
    这个地方
    Html未实例化
      

  4.   

    加一句<%@ Import Namespace="MVCDemo.Models.Entities" %> 看看
    因为我没用过mvc,所以我查了一下,但也没什么头绪,也可能是命名空间什么的
    只能帮这么多了~