解决方案 »

  1.   

    你多虑了, 没有请求就没有响应~那么在加载页面的时候如果我不需要向后台提交数据也会默认去执行后台的controller方法,
    这是不可能的~你可以搜索一下HttpModule,还有HttpHander  要有那种流程图的~
    你就知道asp.net的整个响应周期~,你提出这样的问题~要么就是对asp.net的整个响应周期不理解~ 要么就是对对象的初始化还有调用方法不理解~
    也许两个都不了解
      

  2.   

    而且当我们不需要根据后台来初始化页面数据的时候根本不需要首次加载时controller先执行一次。   Controller和Action只是用来响应你的请求地址~ 
    忘记初始化数据的事情,思考一下你在浏览器上输入一个地址~
    谁来响应~ 没有的话~就是404罗看得出你对MVC的路由不了理解~
      

  3.   

    难道你不知道Action可以重载么?[HttpGet]
    ViewResult Index()
    {
        ... //不需要post,没有参数的逻辑
    }
    [HttpPost]
    ViewResult Index(Model model)
    {
        ... //post数据的请求发送到这里
    }
      

  4.   

    Quote: 引用 1 楼 moonwrite 的回复:

    你多虑了, 没有请求就没有响应~
     
    或许我说错了,我遇到的情况是这样的,我在页面上加了一个文本框,当输入值提交的时候通过后台查询数据再返回结果,但是在页面加载的时候(就是首次进入这个页面的时候)我根本没输入值,后台查询就报了空异常,因为刚进入页面我还没来得及输入数值,肯定是空的。 由此可见,所以我会认为页面生成前都是要先执行controller代码的
      

  5.   


    <input type="text" name="Search">
    if(!string.isnotNullorEmpty(Reqest.Param["Search"]))
    {...............}//不为空的情况下,再去搜索数据库
      

  6.   


    这不是也说明了页面在没有输入数据并且没有点submit之前就向controller发起了请求么?  还有关键是我如果有很多文本框不可能每个框都加这个吧