当前位置:编程学习 > C#/ASP.NET >>

关于MVC3触发方法的问题

有一个news的页面,里面有个 a 标签,点击之后会跳转到 另外的页面,现在我想在这a 标签点击的时候能够触发后台的一个  adddata() 的方法,不知道该如何操作呢? mvc3 --------------------编程问答-------------------- --------------------编程问答-------------------- 各位大神出来挖 --------------------编程问答-------------------- ajax啊! --------------------编程问答--------------------
引用 3 楼 fangxuan 的回复:
ajax啊!

可以详细些么 --------------------编程问答-------------------- 控制器中添加一个 addfile() 动作
页面上

$("你的标签id").click(function(){
  $.post("controllname/adddata",
  {
     参数
  },
  function(data,status){
    alert(data); // data是控制器的返回值
  });
});
--------------------编程问答--------------------
引用 5 楼 caozhy 的回复:
控制器中添加一个 addfile() 动作
页面上

$("你的标签id").click(function(){
  $.post("controllname/adddata",
  {
     参数
  },
  function(data,status){
    alert(data); // data是控制器的返回值
  });
});

我的方法是void类型的可以么 --------------------编程问答--------------------
引用 6 楼 agayboy 的回复:
Quote: 引用 5 楼 caozhy 的回复:

控制器中添加一个 addfile() 动作
页面上

$("你的标签id").click(function(){
  $.post("controllname/adddata",
  {
     参数
  },
  function(data,status){
    alert(data); // data是控制器的返回值
  });
});

我的方法是void类型的可以么

你可以定义一个action调用它。
记得把那个方法标记成[NoAction] --------------------编程问答-------------------- 一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等) --------------------编程问答--------------------
引用 8 楼 fangxuan 的回复:
一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等)


是这样的,我有个按钮是用于下载的,用户一点就会下载比如rar的文件包,我的意思是想统计下下载的次数,所以不需要跳转什么的,就纯粹想调用一个方法罢了,所以不知道如何操作,现在暂时的解决方案是,点击的时候提交到ashx,但感觉做MVC会用到ashx么,感觉有点别扭 --------------------编程问答--------------------
引用 9 楼 agayboy 的回复:
Quote: 引用 8 楼 fangxuan 的回复:

一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等)


是这样的,我有个按钮是用于下载的,用户一点就会下载比如rar的文件包,我的意思是想统计下下载的次数,所以不需要跳转什么的,就纯粹想调用一个方法罢了,所以不知道如何操作,现在暂时的解决方案是,点击的时候提交到ashx,但感觉做MVC会用到ashx么,感觉有点别扭


干嘛还用ashx呢,你指向action就可以啊,你点击怎么做的??不是在action里返回return File(…)的方式进行下载吗?你将统计点击数的逻辑放到该下载的action里就可以了呀! --------------------编程问答--------------------
引用 10 楼 fangxuan 的回复:
Quote: 引用 9 楼 agayboy 的回复:

Quote: 引用 8 楼 fangxuan 的回复:

一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等)


是这样的,我有个按钮是用于下载的,用户一点就会下载比如rar的文件包,我的意思是想统计下下载的次数,所以不需要跳转什么的,就纯粹想调用一个方法罢了,所以不知道如何操作,现在暂时的解决方案是,点击的时候提交到ashx,但感觉做MVC会用到ashx么,感觉有点别扭


干嘛还用ashx呢,你指向action就可以啊,你点击怎么做的??不是在action里返回return File(…)的方式进行下载吗?你将统计点击数的逻辑放到该下载的action里就可以了呀!


比如我有个 download.cshtml 文件,然后homecontroller则有个 
 

  public ActionResult download(string aid = null, string gotodownload = null)
        {
   //1.正常加载的
   if(Convert.ToInt32(aid) > 0&&gotodownload==null)
    {
        model= 获取 Model的数据 
        return View("download",model);
     }
    //第二种是点击下载按钮的
   if(gotodownload!=null) 
   {
        //处理完数据
        return File(path, "application/x-zip-compressed", name);
   }
}


HTML这样处理

按钮的HTML
   <a href="@Url.Action("Home","download", new {articleid=article.ArticleID,gotodownload="1"})" title="@article.ArticleName" target="_blank" class="downloadlink">


是这样处理么 --------------------编程问答--------------------
引用 11 楼 agayboy 的回复:
Quote: 引用 10 楼 fangxuan 的回复:

Quote: 引用 9 楼 agayboy 的回复:

Quote: 引用 8 楼 fangxuan 的回复:

一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等)


是这样的,我有个按钮是用于下载的,用户一点就会下载比如rar的文件包,我的意思是想统计下下载的次数,所以不需要跳转什么的,就纯粹想调用一个方法罢了,所以不知道如何操作,现在暂时的解决方案是,点击的时候提交到ashx,但感觉做MVC会用到ashx么,感觉有点别扭


干嘛还用ashx呢,你指向action就可以啊,你点击怎么做的??不是在action里返回return File(…)的方式进行下载吗?你将统计点击数的逻辑放到该下载的action里就可以了呀!


比如我有个 download.cshtml 文件,然后homecontroller则有个 
 

  public ActionResult download(string aid = null, string gotodownload = null)
        {
   //1.正常加载的
   if(Convert.ToInt32(aid) > 0&&gotodownload==null)
    {
        model= 获取 Model的数据 
        return View("download",model);
     }
    //第二种是点击下载按钮的
   if(gotodownload!=null) 
   {
        //处理完数据
        return File(path, "application/x-zip-compressed", name);
   }
}


HTML这样处理

按钮的HTML
   <a href="@Url.Action("Home","download", new {articleid=article.ArticleID,gotodownload="1"})" title="@article.ArticleName" target="_blank" class="downloadlink">


是这样处理么


你这个是下载数据列表和下载的action是放到一个action了,这样也成,不过你articleid和aid不统一了,参数签名记得一致! --------------------编程问答--------------------
引用 12 楼 fangxuan 的回复:
Quote: 引用 11 楼 agayboy 的回复:

Quote: 引用 10 楼 fangxuan 的回复:

Quote: 引用 9 楼 agayboy 的回复:

Quote: 引用 8 楼 fangxuan 的回复:

一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等)


是这样的,我有个按钮是用于下载的,用户一点就会下载比如rar的文件包,我的意思是想统计下下载的次数,所以不需要跳转什么的,就纯粹想调用一个方法罢了,所以不知道如何操作,现在暂时的解决方案是,点击的时候提交到ashx,但感觉做MVC会用到ashx么,感觉有点别扭


干嘛还用ashx呢,你指向action就可以啊,你点击怎么做的??不是在action里返回return File(…)的方式进行下载吗?你将统计点击数的逻辑放到该下载的action里就可以了呀!


比如我有个 download.cshtml 文件,然后homecontroller则有个 
 

  public ActionResult download(string aid = null, string gotodownload = null)
        {
   //1.正常加载的
   if(Convert.ToInt32(aid) > 0&&gotodownload==null)
    {
        model= 获取 Model的数据 
        return View("download",model);
     }
    //第二种是点击下载按钮的
   if(gotodownload!=null) 
   {
        //处理完数据
        return File(path, "application/x-zip-compressed", name);
   }
}


HTML这样处理

按钮的HTML
   <a href="@Url.Action("Home","download", new {articleid=article.ArticleID,gotodownload="1"})" title="@article.ArticleName" target="_blank" class="downloadlink">


是这样处理么


你这个是下载数据列表和下载的action是放到一个action了,这样也成,不过你articleid和aid不统一了,参数签名记得一致!

+1 --------------------编程问答--------------------
引用 12 楼 fangxuan 的回复:
Quote: 引用 11 楼 agayboy 的回复:

Quote: 引用 10 楼 fangxuan 的回复:

Quote: 引用 9 楼 agayboy 的回复:

Quote: 引用 8 楼 fangxuan 的回复:

一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等)


是这样的,我有个按钮是用于下载的,用户一点就会下载比如rar的文件包,我的意思是想统计下下载的次数,所以不需要跳转什么的,就纯粹想调用一个方法罢了,所以不知道如何操作,现在暂时的解决方案是,点击的时候提交到ashx,但感觉做MVC会用到ashx么,感觉有点别扭


干嘛还用ashx呢,你指向action就可以啊,你点击怎么做的??不是在action里返回return File(…)的方式进行下载吗?你将统计点击数的逻辑放到该下载的action里就可以了呀!


比如我有个 download.cshtml 文件,然后homecontroller则有个 
 

  public ActionResult download(string aid = null, string gotodownload = null)
        {
   //1.正常加载的
   if(Convert.ToInt32(aid) > 0&&gotodownload==null)
    {
        model= 获取 Model的数据 
        return View("download",model);
     }
    //第二种是点击下载按钮的
   if(gotodownload!=null) 
   {
        //处理完数据
        return File(path, "application/x-zip-compressed", name);
   }
}


HTML这样处理

按钮的HTML
   <a href="@Url.Action("Home","download", new {articleid=article.ArticleID,gotodownload="1"})" title="@article.ArticleName" target="_blank" class="downloadlink">


是这样处理么


你这个是下载数据列表和下载的action是放到一个action了,这样也成,不过你articleid和aid不统一了,参数签名记得一致!


嗯,其实我就是不知道怎样调用另外的方法,mvc不是  view的名称(download)对应 controller的方法(download(参数...))吗,如果我另外写方法(adddata),貌似调用不了呀 --------------------编程问答--------------------
引用 14 楼 agayboy 的回复:
Quote: 引用 12 楼 fangxuan 的回复:

Quote: 引用 11 楼 agayboy 的回复:

Quote: 引用 10 楼 fangxuan 的回复:

Quote: 引用 9 楼 agayboy 的回复:

Quote: 引用 8 楼 fangxuan 的回复:

一种ajax,
另一种就是a链接地址直接指向你的action地址,在该action方法里添加adddata方法,然后跳转就好了(return redirect(url)等)


是这样的,我有个按钮是用于下载的,用户一点就会下载比如rar的文件包,我的意思是想统计下下载的次数,所以不需要跳转什么的,就纯粹想调用一个方法罢了,所以不知道如何操作,现在暂时的解决方案是,点击的时候提交到ashx,但感觉做MVC会用到ashx么,感觉有点别扭


干嘛还用ashx呢,你指向action就可以啊,你点击怎么做的??不是在action里返回return File(…)的方式进行下载吗?你将统计点击数的逻辑放到该下载的action里就可以了呀!


比如我有个 download.cshtml 文件,然后homecontroller则有个 
 

  public ActionResult download(string aid = null, string gotodownload = null)
        {
   //1.正常加载的
   if(Convert.ToInt32(aid) > 0&&gotodownload==null)
    {
        model= 获取 Model的数据 
        return View("download",model);
     }
    //第二种是点击下载按钮的
   if(gotodownload!=null) 
   {
        //处理完数据
        return File(path, "application/x-zip-compressed", name);
   }
}


HTML这样处理

按钮的HTML
   <a href="@Url.Action("Home","download", new {articleid=article.ArticleID,gotodownload="1"})" title="@article.ArticleName" target="_blank" class="downloadlink">


是这样处理么


你这个是下载数据列表和下载的action是放到一个action了,这样也成,不过你articleid和aid不统一了,参数签名记得一致!


嗯,其实我就是不知道怎样调用另外的方法,mvc不是  view的名称(download)对应 controller的方法(download(参数...))吗,如果我另外写方法(adddata),貌似调用不了呀


另外写方法(adddata)??这个方法的逻辑你放到download里就好了呀。你说的调用不了,是通过什么方式调用的呢?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,