2010-06-23 3 views
1

В приложении MVC .NET мы можем легко использовать PartialView для вывода вывода файла ASCX..NET сайт: Получить вывод .ascx из jQuery

К примеру, у меня есть Book.ascx файл, я мог бы это в контроллере

public ActionResult Book(int id) 
{ 
    BookModel model = new BookModel() { bookId = id }; 
    return PartialView("Book", model); 
} 

, которая возвращает выходной Book.ascx

Есть ли способ, мы можем сделать это в нормальный сайт .NET?

Я хочу использовать его с AJAX, например.
Когда кнопка Update щелкают, замените содержимое <div id="book123"> с выходом /Book.ascx?id=123

Возможно ли это?

Я ищу что-то вроде этого

$.get('Book.ascx?id=123', function(data) { 
    $("#book123").html(data); 
}); 

Но это не будет работать, потому что вы не можете позвонить Book.ascx непосредственно ...

Заранее спасибо

ответ

1

хорошо, это выполнимо, но не очень :)

вы можете создать экземпляр контроля, и вместо передачи ключа через QueryString , сделайте это с помощью открытой собственности:

var ctrl = new BookModel(); 
ctrl.BookID = "book123"; 

, чем вы могли бы оказать HTML из него что-то вроде

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 и т.д ..

+0

Спасибо Sonic Soul. Я все еще не уверен, как использовать его в jQuery. Btw BookModel - это ViewModel, который используется только в MVC. Вы можете просто использовать строку запроса для Веб-сайта. Я добавил образец кода jQuery, который был после. – Aximili

+0

ах. в этом есть смысл. в вашем предмете, однако вы указали .ascx-контроль, который будет работать с вышеуказанным решением. –

+0

О, да, вы правы ... я его отредактирую. Таким образом, на самом деле нет способа сделать это, не создавая новую страницу aspx? – Aximili

0

его не можно использовать частичные виды в странице формы asp.net. Но вы можете традиционно использовать пользовательские элементы управления (.ascx).

Это, вероятно, лучше всего описана в документации asp.net: http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/userctrl/default.aspx

+0

Спасибо hjortureh, но я до сих пор не знаю, как использовать его в AJAX. Я обновил вопрос, включив в него код, который мне нужен. – Aximili