Javascript中的C#if语句,Razor/MVC3
C# if statement within Javascript, Razor/MVC3
好的,所以我尝试在javascript中使用"if"语句。根据我的模型中的布尔值,函数应该返回一些html或空字符串。这基本上就是我想做的:
function getSomeHtml() {
var myHtml = '';
@if(Model.UseSomeNiceHtml)
{
<text>
myHtml += '<div> <p class="label">Whatever</p></div>';
</text>
}
return myHtml;
}
当使用foreach循环时,类似的代码运行得非常好(在上面的例子中,基本上用foreach替换if)。使用if语句,我得到错误"遇到没有匹配的开始标记的结束标记"text"。您的开始/结束标记是否正确平衡?"。当我删除<text>
标记时,我会得到错误"character literal中的字符太多"。
有人能给我指正确的方向吗?
谢谢!:)
好的,这是对我有用的东西。刚刚测试过。
function getSomeHtml() {
var myHtml = '';
@{
if (Model.UseSomeNiceHtml)
{
<text>
myHtml += '<div> <p class="label">Whatever</p></div>';
</text>
}
}
return myHtml;
}
我添加了一组额外的{}
。
好的,首先:谢谢你的输入,它让我思考。最终,我找到了解决方案,问题是在结束html标记中出现了一个未标记的"/"。由于这些标签没有被屏蔽,我的标签吓坏了。不管怎样,我想我会和你分享我完成的代码是什么样子的。我想它可以作为如何在javascript函数中同时使用C#循环和if语句的示例。
function getSubActivitiesHtml(participantId) {
var html = "";
@{
if(Model.UseSubActivities)
{
<text>
html += "<div class='"textinput req'"><div class='"checkbox req'">";
</text>
foreach (var subActivity in Model.SubActivities)
{
<text>
html += "<p><input id='"activity_" + participantId + "_@(subActivity.Id)'" name='"Participants[" + participantId + "].SelectedSubActivities'" value='"@(subActivity.Id)'" type='"checkbox'" />";
html += "<label for='"activity_" + participantId + "_@(subActivity.Id)'">@(subActivity.Name)</label></p>";
</text>
}
<text>
html += "<'/div><p class='"label'">Delaktiviteter</p><'/div>";
</text>
}
}
return html;
}
注意关闭的html标记是如何转义的
尝试删除<text>
标记或将其放入myHtml += '';
语句
这也有效。
function getSomeHtml() {
var myHtml = '';
if('@Model.UseSomeNiceHtml' === '@true')
{
myHtml += '<div> <p class="label">Whatever</p></div>';
}
return myHtml;
}
function @(treeviewConfig.AddNewTreeviewNode)(treeNode) {
@if (!string.IsNullOrEmpty(NodeIDKey) && !string.IsNullOrEmpty(treeviewConfig.ParentIdExpr)) {
<text>
treeNode['@(treeviewConfig.ParentIdExpr)'] = treeNode['@(NodeIDKey)'];
treeNode['@(NodeIDKey)'] = 0;
</text>
}
@if ( !string.IsNullOrEmpty(treeviewConfig.DisplayExpr)) {
<text>
treeNode['@(treeviewConfig.DisplayExpr)'] = 'nue';
</text>
}
@if ( !string.IsNullOrEmpty(treeviewConfig.EditTreeviewNode)) {
<text>
treeNode['@(treeviewConfig.EditTreeviewNode)'] = 'nue';
</text>
}
PopulateTreeViewNodeInputs(treeNode);
@(treeviewConfig.ShowTreeEditPopup)();
}
这对我来说效果很好
试试这个:
function getSomeHtml() {
@{
var myHtml = "";
if(Model.UseSomeNiceHtml)
{
myHtml += "<div> <p class='label'>Whatever</p></div>";
}
}
return "@myHtml";
}
多年后刚刚在这里进行了修订。一些更现代的Razor版本现在支持这一点:
@if (Model.isValid)
{
@: console.log("This statement will be printed.");
}
这只打印一条语句,所以如果你必须打印多条语句,你就必须添加更多的@:行
但是您可以使用它来调用在其他地方定义的函数
相关文章:
- 用于选择MVC3中单选按钮值的JavaScript
- Razor中的自动提交表单
- 如何在javascript函数中使用Razor值
- 如何在MVC3中显示鼠标悬停在文本上的部分视图
- 使用Razor/C#循环浏览HTML表以获得每个<tr>
- 使用Razor和javascript来获得下拉列表元素
- 如何使用Razor显示模板将字符串转换为html字符串
- 有条件地运行javascript函数-Razor,HTML
- 在 ActionLink mvc3 Razor 中使用 java 脚本变量
- 如何在 .Net MVC3 中使用 json 和 razor snytax 更改表单的标签
- 在 MVC3 Razor 视图引擎中使用 JavaScript 变量
- 如何使用 MVC3 Razor 在 _layout.cshmtl 上创建悬停下拉操作链接
- 将Model和额外参数从View传递到Controller Razor MVC3
- Javascript中的C#if语句,Razor/MVC3
- ASP.NET MVC3,Razor-在Javascript中使用ViewBag或URL变量
- asp.net mvc3 razor, javascript
- jquery不工作后ajax调用.asp .net mvc3(Razor)
- Javascript if语句不会执行MVC3/razor
- asp.net中特定于Razor视图的JQuery代码的最佳实践.净MVC3
- .NET MVC3 + Razor Multiple RenderView/RenderAction