假设我有一个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的情况下我没有链接而不是按钮.
不过,对于这种情况,您会推荐哪种最佳和最优雅的解决方案?我错过了第三种选择吗?
我正在关注一个视频教程,我需要创建一个空的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的嗡嗡声.我知道它的起源的基础知识,并且有很多站点(除非我错了,堆栈溢出本身)基于ASP.NET MVC.
从我听过的所有关于MVC的内容中可以看出,它似乎是ASP.NET开发的未来.但由于我通常不会涉及.NET Web开发,所以我想知道以下内容:何时使用MVC是合适的,何时不适用,为什么?MVC的伟大(和可怕)使用的例子将是令人着迷的.
虽然我意识到MVC的其他实现还有其他语言如RoR,但我对它对.NET程序员的影响更感兴趣.
如果这已经过去了,我道歉!
C#列表速度快吗?使用列表处理对象有哪些好处和坏处?
大量使用列表会使软件变慢吗?C#中列表的替代品有哪些?
列表中有多少个对象是"太多对象"?
我想要的是将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()而不是逃避(评论),但仍然是一样的.
脚本文件名:
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不会被渲染.我错过了什么?
使用MVC 4我使用"data-message"属性为模型属性创建一个文本框:
@Html.TextBoxFor(o => o.TradeOrder.Symbol, new {data-message="Required"})
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
无效的匿名类型成员声明符.必须使用成员分配,简单名称或成员访问声明匿名类型成员.
有谁知道如何传递给定变量而不是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) 在哪种情况下,我可以使用RedirectToAction和在哪里使用RedirectToRouteResult?
我有两个动作方法,如下所示.
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)
我也可以像下面那样编写相同的代码.唯一的区别是这次我用来RedirectToAction代替RedirectToRouteResult
public class ActionResultTypesController : Controller
{
public ActionResult Content()
{
return RedirectToAction("Fileresult", "ActionResultTypes");
}
public ActionResult Fileresult()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个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)
知道为什么会这样吗?
asp.net-mvc ×7
c# ×2
jquery ×2
ajax ×1
crud ×1
forms ×1
hidden-field ×1
laravel ×1
oop ×1
php ×1
php-carbon ×1
razor ×1
renderaction ×1