.NET网站:从jQuery获取.ascx的输出
在MVC.NET应用程序中,我们可以轻松地使用PartialView打印ASCX文件的输出 例如,我有Book.ascx文件,我可以在控制器中有这个文件.NET网站:从jQuery获取.ascx的输出,.net,asp.net,ajax,user-controls,ascx,.net,Asp.net,Ajax,User Controls,Ascx,在MVC.NET应用程序中,我们可以轻松地使用PartialView打印ASCX文件的输出 例如,我有Book.ascx文件,我可以在控制器中有这个文件 public ActionResult Book(int id) { BookModel model = new BookModel() { bookId = id }; return PartialView("Book", model); } 返回Book.ascx的输出 在一个普通的.NET网站上有什么方法可以做到这一点吗 我希望
public ActionResult Book(int id)
{
BookModel model = new BookModel() { bookId = id };
return PartialView("Book", model);
}
返回Book.ascx的输出
在一个普通的.NET网站上有什么方法可以做到这一点吗
我希望能够将其与AJAX一起使用,例如单击更新按钮时,将
的内容替换为/Book.ascx?id=123的输出
可能吗
我在找这样的东西
$.get('Book.ascx?id=123', function(data) {
$("#book123").html(data);
});
但这不起作用,因为您不能直接调用Book.ascx
提前感谢在asp.net表单页面中无法使用部分视图。但是您可以使用传统的方式使用用户控件(.ascx)
这可能在asp.net文档中得到了最好的描述:在asp.net表单页面中不可能使用部分视图。但是您可以使用传统的方式使用用户控件(.ascx)
这可能在asp.net文档中得到了最好的描述:好吧,这是可行的,但并不完美:) 您可以实例化控件,而不是通过QueryString传递密钥,而是通过exposed属性:
var ctrl = new BookModel();
ctrl.BookID = "book123";
这样你就可以用类似于
private string renderControl(Control ctrl)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter tw = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
ctrl.RenderControl(hw);
return sb.ToString();
}
然后通过您的服务将html传回并插入div等 嗯,这是可行的,但并不漂亮:) 您可以实例化控件,而不是通过QueryString传递密钥,而是通过exposed属性:
var ctrl = new BookModel();
ctrl.BookID = "book123";
这样你就可以用类似于
private string renderControl(Control ctrl)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter tw = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
ctrl.RenderControl(hw);
return sb.ToString();
}
然后通过您的服务将html传回并插入div等 谢谢Sonic Soul。我仍然不知道如何在jQuery中使用它。顺便说一句,BookModel是一个仅在MVC中使用的ViewModel。您可以只为网站使用查询字符串。我添加了一个示例jQuery代码。这是有道理的。在你的主题中,不管你怎么说。ascx控件将与上述解决方案一起工作。是的,你是对的。。。我会编辑它。因此,如果不创建一个新的aspx页面,真的没有办法做到这一点,是吗?我想现在的问题是,我可以将我的aspx转换为aspx,并且仍然能够在其他aspx页面中使用它吗?你知道吗,音速灵魂。您可以创建一个非常基本的aspx页面,它将是ascx的容器,并且仅用于MVC需求。(同样,我对MVC的了解是有限的,所以我不能肯定这个实现,但似乎是可行的选择)感谢Sonic Soul。我仍然不知道如何在jQuery中使用它。顺便说一句,BookModel是一个仅在MVC中使用的ViewModel。您可以只为网站使用查询字符串。我添加了一个示例jQuery代码。这是有道理的。在你的主题中,不管你怎么说。ascx控件将与上述解决方案一起工作。是的,你是对的。。。我会编辑它。因此,如果不创建一个新的aspx页面,真的没有办法做到这一点,是吗?我想现在的问题是,我可以将我的aspx转换为aspx,并且仍然能够在其他aspx页面中使用它吗?你知道吗,音速灵魂。您可以创建一个非常基本的aspx页面,它将是ascx的容器,并且仅用于MVC需求。(同样,我对MVC的了解是有限的,所以我不能肯定这个实现,但似乎是可行的选择)感谢hjortureh,但我仍然不确定如何在AJAX中使用它。我更新了问题,加入了我想要的代码。谢谢hjortureh,但我仍然不知道如何在AJAX中使用它。我更新了问题,加入了我想要的代码。