Я пытаюсь создать общее решение для кнопок, запускающих функции JavaScript в ASP.NET MVC 3. С этой целью я создал класс C# ToolButton и частичный вид с тем же именем, что и следует:Переход JavaScript на частичный вид
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<ToolButton>" %>
<%@ Import Namespace="Models.Shared" %>
<script src="<%= Url.Content("~/Scripts/Utility/toolbutton.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('<%: String.Format("#{0}", Model.Id) %>').toolbutton({ 'onClick': function() { alert('xyz'); } });
});
</script>
<div id="<%: Model.Id %>" class="tool-button"></div>
Заметил обработчик onClick? Я приду к этому в одно мгновение. toolbutton.js - это пользовательское расширение jQuery и обрабатывает все события. Идея теперь иметь, скажем, IEnumerable с кнопками, которые вызывают разные (чисто JavaScript ведомые) события, как так:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<ToolButton>>" %>
<%@ Import Namespace="Models.Shared" %>
<div class="tool-panel">
<table>
<tbody>
<tr>
<% foreach (var toolButton in Model)
{ %>
<td><% Html.RenderPartial("ToolButton", toolButton); %></td>
<% } %>
</tr>
</tbody>
</table>
</div>
проблема теперь, что я не могу понять, как передать событие обработчик для конкретного экземпляра ToolButton. Я хотел бы выполнить собственный обработчик JavaScript для любой отдельной кнопки в перечислении, например, одна кнопка очищает текстовое поле, а другая кнопка заполняет ту же самую текстовую область с некоторым предварительно отформатированным текстом - когда эта кнопка нажата, то есть мне нужно пройти в обработчике onClick, который устанавливается, когда этот экземпляр ToolButton инициализируется (обычно, когда ToolButton.ascx частично отображается).
Есть ли способ пройти JavaScript на частичный просмотр?
не уверен, что ур пытается сделать человек, но js, jq можно передать куда угодно. используя dom или модальные трюки – Val