小编ter*_*ško的帖子

Rails - 更新单个属性:链接自定义操作或隐藏字段的表单?

假设我有一个User模型,其facebook_uid字段对应于用户的facebook id.

我想允许用户取消他的Facebook帐户的链接.这样做,我需要将此属性设置为nil.

我目前看到了两种方法

第一种方式:创建自定义操作并链接到它

# app/controllers/users_controller.rb
def unlink_facebook_account
  @user = User.find params[:id]
  # Authorization checks go here
  @user.facebook_uid = nil
  @user.save
  # Redirection go here
end

# config/routes.rb
ressources :users do
  get 'unlink_fb', :on => :member, :as => unlink_fb
end 

# in a view
= link_to "Unlink your facebook account", unlink_fb_path(@user)
Run Code Online (Sandbox Code Playgroud)

第二种方式:为现有更新操作创建表单

# app/views/user/_unlink_fb_form.html.haml
= form_for @user, :method => "post" do |f|
  = f.hidden_field :facebook_uid, :value => nil
  = f.submit "Unlink Facebook account"
Run Code Online (Sandbox Code Playgroud)

我不是两种方式的忠实粉丝.

  • 在第一个中,我必须为更新控制器已经可以执行的操作添加新操作.

  • 在第二个中,我无法在不自定义更新操作的情况下将facebook_uid设置为nil,并且在没有添加一些javascript的情况下我没有链接而不是按钮.

不过,对于这种情况,您会推荐哪种最佳和最优雅的解决方案?我错过了第三种选择吗?

解决方案(Abdullah Jibaly建议) …

forms ruby-on-rails crud hidden-field

31
推荐指数
1
解决办法
1万
查看次数

无法在VS 2015中从控制器添加视图:"运行所选代码生成器时出错"

我正在关注一个视频教程,我需要创建一个空的ASP.NET Web应用程序MVC,使用Visual Studio 2015,作为ASP.NET世界的新手,我正在逐步完成.

我的项目创建得很好,下一步添加了一个现有的View Controller,我遇到了一个消息框错误说:

错误:
运行所选代码生成器时出错:'无效指针(来自HRESULT的异常:0x80004003(E_POINTER))'

我用Google搜索了问题,发现了类似的问题,但没有一个明确的解决方案,一些类似的问题,由前期版本的VisualStudio发布,但正如我说没有一个明确的解决方案.

为了澄清我的经历,这是我一步一步做的:

选择ASP.NET Web应用程序:

在此输入图像描述

选中MVC选择空模板:

在此输入图像描述

试图Add View从控制器:

在此输入图像描述

一些设置......

在此输入图像描述

错误 :

在此输入图像描述

造成这个问题的原因是什么?它的解决方案是什么?

更新:

事实证明,即使尝试手动添加View我也会得到同样的错误,添加视图是不可能的!

asp.net-mvc visual-studio visual-studio-2015

31
推荐指数
4
解决办法
4万
查看次数

MVC的实际应用|| 何时使用,或不使用MVC

我见过ASP.NET社区对MVC的嗡嗡声.我知道它的起源的基础知识,并且有很多站点(除非我错了,堆栈溢出本身)基于ASP.NET MVC.

从我听过的所有关于MVC的内容中可以看出,它似乎是ASP.NET开发的未来.但由于我通常不会涉及.NET Web开发,所以我想知道以下内容:何时使用MVC是合适的,何时不适用,为什么?MVC的伟大(和可怕)使用的例子将是令人着迷的.
虽然我意识到MVC的其他实现还有其他语言如RoR,但我对它对.NET程序员的影响更感兴趣.

如果这已经过去了,我道歉!

asp.net-mvc

30
推荐指数
3
解决办法
1万
查看次数

C#列表的速度

C#列表速度快吗?使用列表处理对象有哪些好处和坏处?

大量使用列表会使软件变慢吗?C#中列表的替代品有哪些?

列表中有多少个对象是"太多对象"?

c# oop

30
推荐指数
2
解决办法
2万
查看次数

JQUERY ajax将值从MVC View传递给Controller

我想要的是将View中的txtComments值(使用jquery/ajax)传递给Controller.

问题是ajax/jquery不接受脚本标记为字符串.这意味着,当我在txtComments中输入任何脚本/ html标签时,ajax会进入错误功能而无法进入控制器.

这是jQuery:

        $('#btnSaveComments').click(function () {
            var comments = $('#txtComments').val();
            var selectedId = $('#hdnSelectedId').val();

            $.ajax({
                url: '<%: Url.Action("SaveComments")%>?id=' + selectedId + '&comments=' + escape(comments),
                type: "post",
                cache: false,
                success: function (savingStatus) {
                    $("#hdnOrigComments").val($('#txtComments').val());
                    $('#lblCommentsNotification').text(savingStatus);
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    $('#lblCommentsNotification').text("Error encountered while saving the comments.");
                }
            });
        });
Run Code Online (Sandbox Code Playgroud)

这是控制器:

        [HttpPost]
        public ActionResult SaveComments(int id, string comments){
             var actions = new Actions(User.Identity.Name);
             var status = actions.SaveComments(id, comments);
             return Content(status);
        }
Run Code Online (Sandbox Code Playgroud)

我也试过$('#txtComments').serialize()而不是逃避(评论),但仍然是一样的.

ajax model-view-controller asp.net-mvc jquery

30
推荐指数
3
解决办法
19万
查看次数

捆绑脚本文件未呈现.

脚本文件名:

jquery.transit.min.js
Run Code Online (Sandbox Code Playgroud)

该文件位于Scripts文件夹中,

bundles.Add(new ScriptBundle("~/bundles/jquery")
       .Include("~/Scripts/jquery-{version}.js"));

bundles.Add(new ScriptBundle("~/bundles/jqueryui")
       .Include("~/Scripts/jquery-ui-{version}.js"));

bundles.Add(new ScriptBundle("~/bundles/jqueryval")
       .Include("~/Scripts/jquery.unobtrusive*", "~/Scripts/jquery.validate*"));

bundles.Add(new ScriptBundle("~/bundles/jtransit")
       .Include("~/Scripts/jquery.transit*"));
Run Code Online (Sandbox Code Playgroud)

在我的View,

@Scripts.Render("~/bundles/jquery","~/bundles/jtransit")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
Run Code Online (Sandbox Code Playgroud)

渲染 HTML

<script src="/Scripts/jquery-1.8.3.js"></script>
<script src="/Scripts/jquery-ui-1.9.2.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
Run Code Online (Sandbox Code Playgroud)

jquery.transit.min.js不会被渲染.我错过了什么?

asp.net-mvc jquery resourcebundle

30
推荐指数
3
解决办法
3万
查看次数

ASP.NET MVC将属性"data-message"添加到Html.TextBoxFor

使用MVC 4我使用"data-message"属性为模型属性创建一个文本框:

@Html.TextBoxFor(o => o.TradeOrder.Symbol, new {data-message="Required"})
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

无效的匿名类型成员声明符.必须使用成员分配,简单名称或成员访问声明匿名类型成员.

asp.net-mvc razor asp.net-mvc-4

30
推荐指数
1
解决办法
3万
查看次数

使用碳和刀片计算两个日期之间的差异

有谁知道如何传递给定变量而不是Carbon的默认参数?

Carbon的文档说:

// CARBON SAMPLE

$dtToronto = Carbon::createFromDate(2012, 1, 1, 'America/Toronto');
$dtVancouver = Carbon::createFromDate(2012, 1, 1, 'America/Vancouver');
echo $dtVancouver->diffInHours($dtToronto); // 3
Run Code Online (Sandbox Code Playgroud)

我想在我的控制器中做这样的事情:

  // EXAMPLE

  $date = "2016-09-16 11:00:00";
  $datework = Carbon::createFromDate($date);
  $now = Carbon::now();
  $testdate = $datework->diffInDays($now);
Run Code Online (Sandbox Code Playgroud)

并在Blade模板上检索它

  // VIEW ON BLADE

  <td> {{ $testdate }} </td>
Run Code Online (Sandbox Code Playgroud)

php laravel php-carbon laravel-blade

30
推荐指数
3
解决办法
4万
查看次数

何时使用RedirectToAction以及在何处使用RedirectToRouteResult?

题

在哪种情况下,我可以使用RedirectToAction和在哪里使用RedirectToRouteResult?

我有两个动作方法,如下所示.

方法 - 1

public class ActionResultTypesController : Controller
{
    public ActionResult Content()
    {
        return new RedirectToRouteResult(new RouteValueDictionary(
               new { action = "Fileresult", controller = "ActionResultTypes" }));
    }
    public ActionResult Fileresult()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

方法 - 2

我也可以像下面那样编写相同的代码.唯一的区别是这次我用来RedirectToAction代替RedirectToRouteResult

public class ActionResultTypesController : Controller
{
    public ActionResult Content()
    {
        return RedirectToAction("Fileresult", "ActionResultTypes");
    }
    public ActionResult Fileresult()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

这两段代码都有共同的结果

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

29
推荐指数
2
解决办法
4万
查看次数

在视图中执行处理程序的子请求时出错

我有一个MVC 4视图,我在其中呈现以下操作

@{
    Html.RenderAction("Index", "Logo");
    Html.RenderAction("Index", "MainMenu");
}
Run Code Online (Sandbox Code Playgroud)

我的视图上有一个表格,填写并发布到控制器.在控制器中,我执行一些任务,然后将模型发送回我的视图

[HttpPost]
public ActionResult Index(ManageAdministratorModel manageAdministratorModel)
{
     // I save some of the fields to the database here.
     return View(manageAdministratorModel);
}
Run Code Online (Sandbox Code Playgroud)

当我被重定向到视图时,我收到以下错误

执行处理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'的子请求时出错.

在这条线上

Html.RenderAction("Index", "Logo");
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

c# asp.net-mvc renderaction asp.net-mvc-4

29
推荐指数
3
解决办法
8万
查看次数