小编Pet*_*teM的帖子

在Umbraco 6.1.1 MVC 4中,如何使用继承自Umbraco的RenderModel的模型将表单发回到表面控制器?

场景:

我正在使用MVC在Umbraco 6中建立一个站点 - 我对Umbraco来说相当新,但是到目前为止我已经通过遵循教程等完成了所有工作,并且在大多数情况下一切都很好.

所以我有一个"联系我们"表单,构建为部分视图,使用以下代码呈现:

@using (Html.BeginUmbracoForm("SendEmail", "ContactFormSurface"))
{
Run Code Online (Sandbox Code Playgroud)

发回我的ContactFormSurfaceController:

public class ContactFormSurfaceController : Umbraco.Web.Mvc.SurfaceController
{
    [HttpPost]
    public ActionResult SendEmail(ContactFormModel model)
    {
Run Code Online (Sandbox Code Playgroud)

现在,我的ContactFormModel继承了Umbraco RenderModel,我在一个单独的ContactFormController中"劫持"了我的Contact Us视图的路径:

public class ContactFormController : RenderMvcController
{
    //
    // GET: /Contact-us/

    public override ActionResult Index(RenderModel model)
    {
        var contactFormModel = new ContactFormModel(model);
        return CurrentTemplate(contactFormModel);
    }
Run Code Online (Sandbox Code Playgroud)

我希望这样,以便我可以根据Umbraco内容提供灵活的标题并在联系表单中提交按钮文本.我的ContactFormModel在其构造函数中采用RenderModel,以便它可以访问底层的Umbraco内容:

public class ContactFormModel : RenderModel
{
    #region Ctr

    public ContactFormModel(RenderModel model) : base(model.Content, model.CurrentCulture) {}

    #endregion


    #region Contact Form Fields

    [Display(Name = "Your Name")]
    [Required]
    public string Name { …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc umbraco asp.net-mvc-4

9
推荐指数
1
解决办法
2944
查看次数

执行通过DOM插入加载的javascript

我正在开发一些将小部件添加到客户网站的东西,我想异步加载我的js,以免阻止客户的页面加载.我一直在阅读很多有关此问题的主题,并且一直在尝试实现此处建议的模式,因为我的项目非常相似:

http://friendlybit.com/js/lazy-loading-asyncronous-javascript

我遇到的问题是我动态加载的javascript文件中的代码没有被执行.很抱歉,如果这似乎是一个重复的问题,但我花了几个小时搜索并尝试稍微不同的技术,我读过很多帖子,包括这些stackoverflow问题:

但是我仍然在努力做这项工作,所以我希望如果我直接问这个问题,有人可以帮助我!

我目前得到以下作为一个非常基本的测试; 很明显,我的真实剧本中还有很多内容,但我只需要了解这里发生的事情(或者事实上,未发生的事情).

所以在我的代码文件"test.js"中,我只需:

run_test = function () {
    alert('hello from test');
};
Run Code Online (Sandbox Code Playgroud)

然后在我的页面上:

(function () {
     load_test = function () {
        var t = document.getElementsByTagName('script')[0];
        var s = document.createElement('script');
        s.type = 'text/javscript';
        s.async = true;
        s.src = 'test.js';

        s.onload = s.readystatechange = function () {
            if (run_test) run_test();

            s.onload = null;
            s.onreadystatechange = null;
        };

        t.parentNode.insertBefore(s, t);
    };

    load_test();
})();
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种变体 - 我已经尝试删除"s.async = true"只是为了看看它是否有所作为,但事实并非如此.我最初有以下代替"load_test();",正如我在上面提到的第一篇文章中所建议的那样:

window.attachEvent ? window.attachEvent('onload', load_test) : window.addEventListener('load', load_test, false); …
Run Code Online (Sandbox Code Playgroud)

javascript events dom asynchronous

6
推荐指数
1
解决办法
2236
查看次数