因此,例如在Web表单aspx页面的代码中,我希望能够做类似的事情
string textBoxHtml = Html.TextBox("MyTextBox");
这可能吗?
源代码是否可用于分析webforms?
为什么我的html帮助扩展可以工作:
<%= Html.MyExt() %>
Run Code Online (Sandbox Code Playgroud)
所有mvc助手的工作方式如下:
<% Html.TextBox(""); %>
Run Code Online (Sandbox Code Playgroud)
我的扩展构建一个StringBuilder,然后返回一个字符串.
我正在尝试构建一个包含一些优先级值的选择列表,然后是一个分隔符,然后是其余的值.我需要在Html Helper中执行此操作,因为我将获得优先级的值以及来自不同源的其余值.
我想要完成的样本:
EUR
GBP
USD
---
SEK
ZAR
.
.
.
Run Code Online (Sandbox Code Playgroud)
我还想确保无法选择分隔符.如果我直接在html中执行此操作,我已设法执行此操作,但在通过帮助程序执行此操作时,我无法禁用分隔符.任何想法如何做到这一点?
我正在使用我自己的自定义HtmlHelper来启用选择列表上的AutoComplete支持.
这是正常的,除了我需要能够支持我的ViewModel中的DataAnnotations.
这是我当前(工作)HtmlHelper(没有验证)
<Extension()>
Public Function AutoCompleteDropDownList(ByVal helper As HtmlHelper, name As String, autoCompleteSelectListItem As List(Of AutoCompleteSelectListItem), htmlAttributes As Object) As MvcHtmlString
Dim selectBuilder As New TagBuilder("select")
selectBuilder.MergeAttribute("name", name)
selectBuilder.MergeAttributes(New RouteValueDictionary(htmlAttributes))
selectBuilder.MergeAttribute("autocorrect", "off")
selectBuilder.MergeAttribute("autocomplete", "off")
Dim selectListBuilder As New TagBuilder("option")
selectListBuilder.MergeAttribute("value", "")
selectListBuilder.MergeAttribute("selected", "selected")
Dim innerHtmlBuilder As New StringBuilder
innerHtmlBuilder.Append(selectListBuilder.ToString(TagRenderMode.Normal))
For Each item In autoCompleteSelectListItem
selectListBuilder = New TagBuilder("option")
selectListBuilder.MergeAttribute("value", item.Value)
selectListBuilder.MergeAttribute("data-alternative-spellings", item.AlternativeSpellings)
selectListBuilder.MergeAttribute("data-relevancy-booster", item.RelevancyBooster)
selectListBuilder.InnerHtml = item.Label
innerHtmlBuilder.Append(selectListBuilder.ToString(TagRenderMode.Normal))
Next
selectBuilder.InnerHtml = innerHtmlBuilder.ToString()
Return MvcHtmlString.Create(selectBuilder.ToString(TagRenderMode.Normal))
End Function
Run Code Online (Sandbox Code Playgroud)
如何重写这个以支持验证?就像是 …
是否可以使用CakePHP中的html助手创建一个带有弹出警报[$ confirmMessage]的链接的图像?
这是我目前的文字链接:
$this->Html->link('Clear list', array('controller' => 'items', 'action' => 'clearlist', $model['Model']['id']), array(), 'Clear list?')
Run Code Online (Sandbox Code Playgroud)
这是图像助手如何使用链接创建图像:
echo $this->Html->image("recipes/6.jpg", array( "alt" => "Brownies", 'url' => array('controller' => 'recipes', 'action' => 'view', 6)));
Run Code Online (Sandbox Code Playgroud)
但是,这只允许htmlattributes数组作为链接的争论.
$ confirmMessage警报不是html属性吗?
这是我试过的代码:
echo $this->Html->link($this->Html->image("clearall.png", array("alt" => "Clear list")), array('controller' => 'items', 'action' => 'clearlist', $model['Model']['id']), array(), 'Clear list?');
Run Code Online (Sandbox Code Playgroud)
但是这段代码为我的img打印了正确的html文本:
<img src="/img/clearall.png" alt="Clear list" />
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我是否必须放弃htmlhelper?
如何将以下字段设为Readonly ..?
<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>
Run Code Online (Sandbox Code Playgroud) 在Cake中,我们可以像这样在image()中添加url:
$this->Html->image('image src...', array('url' => 'some address...');
输出为:
<a href="some address..."><img src="image src..." /></a>.
如何将类和其他属性添加到a标记?
目前,我有一堆div元素如下所示:
<div onclick="window.open('Technology','mywindow');" class="grid" id="technology">
<p class="category-title">Technology</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我想摆脱window.open,而是使用MVC htmlhelper(例如actionlink)在用户单击div元素时重定向用户。我怎样才能做到这一点?
MVC4,C#,jQuery,Razor视图(.cshtml)
我正在尝试用@ HTML.DropDownList更新节点的.html():
<script type="text/javascript">
$('#CmpMASttF').html('@Html.DropDownList("CmpAdrsSt.State", (IEnumerable<SelectListItem>)ViewBag._State) @Html.ValidationMessageFor(m => m.CmpAdrsSt.State) ');
</script>
Run Code Online (Sandbox Code Playgroud)
这适用于@ HTML.EditorFor:
$('#CmpMASttF').html('@Html.EditorFor(m => m.CmpAdrsSt.State) @Html.ValidationMessageFor(m => m.CmpAdrsSt.State) ');
Run Code Online (Sandbox Code Playgroud)
这是正在更新的节点:
<tr class="CmpMA"><td tate: </td>
<td colspan="4" ><span id="CmpMASttF" class="editor-field"></span> </td></tr>
Run Code Online (Sandbox Code Playgroud)
@ HTML.DropDownList代码本身工作正常,因此不是问题的根源:
<tr><td>State: </td>
<td colspan="4"><span class="editor-field">
@Html.DropDownList("CmpAdrsSt.State", (IEnumerable<SelectListItem>)ViewBag._State)
@Html.ValidationMessageFor(m => m.CmpAdrsSt.State)</span> </td></tr>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用带有jQuery .html()的@HTML.DropDownList更新节点时,javascript块中的所有代码都被禁用.
我试过编码字符串:
var test = '@Ajax.JavaScriptStringEncode("Html.DropDownList(\"CmpAdrsSt.State\",(IEnumerable<SelectListItem>)ViewBag._State)")'
Run Code Online (Sandbox Code Playgroud)
但是当注入.html()时,它呈现为字符串而不是HTML DropDownList帮助器(在HTML之前添加@,"@ HTML.DropDownList ......,没有区别).
如何使用@HTML.DropDownList更新节点的.html()?
谢谢
在部分视图中,有一个使用Html.Helper类(TextBoxFor,DropDownListFor等)的表单(@addName).
@model Models.ADP
using (@Html.BeginForm(new { id= @addName}))
{
@Html.TextBoxFor(model => model.EndValue, new { id = @newName, size = "5", style = "margin-right: 10px" })
@Html.HiddenFor(model => model.ModuleTypeId, new { @Value = @ViewBag.ModuleId }
@Html.DropDownListFor(model => model.DPId, @dpList, "Choose an Option...", new { @class = "select" })
}
Run Code Online (Sandbox Code Playgroud)
我拦截提交以便异步发布和检索新数据,divId是整个部分视图的div.
$('#@saveName').click( function (event) {
event.preventDefault();
$.ajax({
url: '@Url.Action("SaveADP", "Dispense")',
type: 'POST',
data: $('#@addName').serialize(),
success: function (data) {
$('#@divId').html(data);
}
})
})
Run Code Online (Sandbox Code Playgroud)
正在调用SaveADP操作,但是唯一具有设置值的字段是EndValue,其他字段(ModuleTypeId和DPId)具有默认值而不是其表单值.我在这做错了什么?
html-helper ×10
asp.net-mvc ×6
c# ×2
cakephp ×2
jquery ×2
razor ×2
actionlink ×1
ajax ×1
asp.net ×1
html ×1
hyperlink ×1
image ×1
selectlist ×1
validation ×1
webforms ×1