如何从 umbraco mvc 中的表面控制器添加查询字符串。这是我目前的代码。
最初我写了一个代码
public ActionResult Registration(RegisterModel model)
{
//Code to insert register details
ViewBag.Success="Registered Successfully"
return CurrentUmbracoPage();
}
Run Code Online (Sandbox Code Playgroud)
有了这个,我可以成功地保留我的 ViewBag 和模型属性值,但我无法用它添加查询字符串。
对于某些要求,我必须更改返回带有查询字符串的 url 的代码。我做了如下
public ActionResult Registration(RegisterModel model)
{
//Code to insert register details
ViewBag.Success="Registered Successfully"
pageToRedirect = AppendQueryString("success");
return new RedirectResult(pageToRedirect);
}
public string AppendQueryString(string queryparam)
{
var pageToRedirect = new DynamicNode(Node.getCurrentNodeId()).Url;
pageToRedirect += "?reg=" + queryparam;
return pageToRedirect;
}
Run Code Online (Sandbox Code Playgroud)
有了这个,我的模型中的属性值无法持久化,并且 ViewBag 返回空值。
任何人都可以建议我如何通过将值保留在模型和 ViewBag 中来添加查询字符串。
在 Umbraco 中,为什么在指向现有 umbraco 数据库和现有内容的新部署或机器上会出现此错误?
找不到网页
不存在在 url '/' 处呈现文档的模板。
此外,不存在用于呈现自定义 404 的模板。
此页面可以替换为自定义 404。请查看“自定义 404”文档。
这个页面是故意留下难看的 ;-)
Umbraco 的 Surface 和 API 控制器有什么区别?
在标准 MVC 中,一般规则是:
但我对 Umbraco 有点不确定。
到目前为止,我一直在使用表面控制器将数据从表单发布到表单,这让我想知道我是否正确使用它,我是否应该为此使用 API 控制器
你的意见的理由是什么?
我想将Bundles添加到现有的ASP.NET MVC 4(.NET 4.5)网站中,该网站使用:
我试图遵循以下指示:https://gist.github.com/jkarsrud/5143239,并且在我开始捆绑路径之前加载了CSS.
在页面加载时,它会插入样式引用:
<link href="/bundles/marketingcss" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
但是发生404错误:
> GET http://localhost:20459/bundles/marketingcss 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
这是我在代码中的内容:
Web.Config中
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/bundles" />
Run Code Online (Sandbox Code Playgroud)
Global.asax中
<%@ Application Codebehind="Global.asax.cs" Inherits="MapCom.Global" Language="C#" %>
Run Code Online (Sandbox Code Playgroud)
的Global.asax.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Optimization;
using System.Web.Security;
using System.Web.SessionState;
using Umbraco.Web;
namespace MapCom
{
public class Global : UmbracoApplication
{
protected void Application_Start(object sender, EventArgs e)
{
base.OnApplicationStarted(sender, e);
BundleConfig.RegisterBundles(BundleTable.Bundles);
} …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc-4 bundling-and-minification system.web.optimization umbraco6
刚刚将Umbraco V6.1.1站点升级到V6.1.3.我的工作站一切顺利.删除所有文件后,将文件复制到Web服务器,对数据库执行相同操作.设置所有目录权限并运行该站点.网站(这是MVC)运行但有两个我无法理解的问题,并且非常感谢一些帮助.
读取过去EOF错误导致一页错误.这是它试图运行的视图.错误在Bold的链接上.
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "BasePage.cshtml";
}
<div class="row-fluid">
<div class="span12">
<h1>@Umbraco.Field("pageName")</h1>
@Umbraco.Field("pageText")
</div>
</div>
<div class="row-fluid">
<div class="span12">
@foreach (var page in Model.Content.Children) {
<section class="well">
<h3>@page.Name</h3>
@if(page.Children.Count() > 0) {
<ul>
**@foreach (var pub in page.Children) {**
<li><a href="@Umbraco.Media(pub.GetPropertyValue("publication")).Url" title="@pub.Name" target="_blank">@pub.Name</a></li>
}
</ul>
}
</section>
}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪是
[IOException: read past EOF]
Lucene.Net.Index.FindSegmentsFile.Run(IndexCommit commit) +2040
Lucene.Net.Index.DirectoryReader.Open(Directory directory, IndexDeletionPolicy deletionPolicy, IndexCommit commit, Boolean readOnly, Int32 termInfosIndexDivisor) +57
Lucene.Net.Search.IndexSearcher..ctor(Directory path, Boolean readOnly) +29
Examine.LuceneEngine.Providers.LuceneSearcher.ValidateSearcher(Boolean forceReopen) +136 …Run Code Online (Sandbox Code Playgroud) 我刚从Umbraco 4.7.1升级到6.1.6
我的自定义部分中有一个TinyMCE控件.它在升级后停止工作.
以下是自定义部分中页面代码的一部分:
public partial class MyCustomPage : UmbracoEnsuredPage
{
private TinyMCE txtLongDesc;
protected UmbracoPanel UmbPanel { get { return Web.FindControlRecursive(Master, "umpContent") as UmbracoPanel; } }
protected override void Page_Init(object sender, EventArgs e)
{
base.Page_Init(sender, e);
PutTinyMce(ref txtLongDesc, "txtLongDesc", phLongDesc, UmbPanel);
}
public static void PutTinyMce(ref TinyMCE control, string controlId, PlaceHolder placeHolder, UmbracoPanel panel)
{
DataTypeDefinition d = DataTypeDefinition.GetDataTypeDefinition(2710); // My custom TinyMCE DataType
control = (umbraco.editorControls.tinyMCE3.TinyMCE)d.DataType.DataEditor;
control.ID = controlId;
placeHolder.Controls.Add(control);
panel.Menu.NewElement("div", "umbTinymceMenu_" + control.ClientID, "tinymceMenuBar", 0); // Add …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Umbraco 6.1.6网站调查性能问题。该网站正在运行许多自定义代码,我确定这是原因,但是为了更好地帮助我理解应用程序,有人可以提供解释页面请求生命周期的图形化图表吗?
具体来说,我想了解从Umbraco应用程序的每个主要部分返回内容的流程,包括:
我希望这个已经存在,但是我在Umbraco论坛上找不到它。
在Umbraco 6.1.6的Developer部分中,有一个Relation Types节点.
任何人都可以解释什么是关系类型,以及它们是否具有实际应用.我看过一些文档,但仍然不确定为什么我可能需要使用它们.
它们在v6和v7中是否仍然相关?
好的,所以我刚刚在Umbraco的杂草中度过了最后的6-8周,并对我们的网站和环境进行了一些修复/改进.我花了很多时间试图纠正较低级别的Umbraco缓存相关问题.现在反思我的经验,我仍然不清楚以下几点之间的概念差异:
再次感谢,
德文 -
我有一个具有一些自定义功能的Umbraco CMS应用程序,为此我使用了PetaPOCO将数据存储在数据库中。我创建了POCO和一个Umbraco事件,该事件在应用程序启动时触发以创建表(如果该表不存在):
public class RegisterEvents : ApplicationEventHandler
{
//This happens everytime the Umbraco Application starts
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
//Get the Umbraco Database context
var db = applicationContext.DatabaseContext.Database;
//Check if the DB table does NOT exist
if (!db.TableExist("MyTable"))
{
//Create DB table - and set overwrite to false
db.CreateTable<MyPetaPOCO>(false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不直接访问数据库的情况下修改现有数据库(我想添加一列)?我需要使用代码,因为主机尚未提供访问权限。我认为我应该能够在此ApplicationStarted重写事件中执行此操作,但我不知道如何操作。
编辑
我应该使用Somel Fluent Migrator吗
我正在开发我的第一个Umbraco 6 MVC网站,它花了我一个小时的时间来研究如何在剃须刀视图中显示内容管理的图像.它不能那么难,我必须遗漏一些东西......
这就是我最终的结果......
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = null;
}
<!Doctype HTML>
<html>
<head>
<title>blah</title>
</head>
<body>
<header>
<img src="@Umbraco.TypedMedia(Int32.Parse(Model.Content.GetPropertyValue("siteLogo").ToString())).GetPropertyValue("umbracoFile")"/>
</header>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
...只是显示图像似乎过于复杂?当然这不是使用剃须刀的最佳做法吗?
我的树中有一个名为Register的节点,umbraco创建了这个页面,其URL为:
Domain.com/register
这是我期待的,然后我决定将节点的名称更改为"注册步骤1"
正如我期待URL更改并查看umbraco后台的URL现在
Domain.com/register-step-1
到目前为止一切都好......对吧?
好的,但现在如果我导航到Domain.com/register
Umbraco自动将我重定向到Domain.com/register-step-1
任何人都可以解释为什么会这样吗?
在我的场景中,这种行为实际上很好,意味着如果有人在外部网站上创建了链接,他们不需要更新它,用户仍然会看到我希望他们看到的页面,所有这一切都没有我做任何事情.
但在其他情况下,这可能正是你不想发生的事情,所以我怎么能把它关掉呢?
有任何想法吗?