我可以像这样成功地对我的webAPI进行ajax调用:
使用Javascript:
$.ajax({
type: "GET",
url: "api/Breeze/DeleteMaterials",
cache: false,
data: { aa: 'aa', bb: 'bb' },
dataType: "json",
contentType: "application/json; charset=utf-8",
traditional: true,
success: () => { result.resolve(true); },
error: (error) => result.reject(error)
});
Run Code Online (Sandbox Code Playgroud)
Web API:
[System.Web.Http.HttpGet]
public void DeleteMaterials(string aa, string bb)
{
// doing something here
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好.到达webAPI并且存在值参数.现在我不想保持'GET'调用,因为在这里我正在执行删除服务器端,我需要'DELETE'或'POST'.
我知道'DELETE'调用是不可能的,因为它只接受1个参数,对于我的情况我需要传递2个参数.
所以我尝试在我之前的代码中用'POST'替换'GET'并且从未到达webAPI并且我得到HTTP错误404:找不到.
我已经在所有SO建议中搜索了很多但是没有一个能给我我需要的东西.
任何的想法?
谢谢.
我希望我的图像不被拉伸,也没有滚动条.因此,当浏览器窗口缩小时,图像仍然是相同的大小(但隐藏溢出).
<img src="http://nybbledesigns.com/images/header.jpg"/>
Run Code Online (Sandbox Code Playgroud)
JsFiddle:http://jsfiddle.net/6ppL9axc/
我找到了带容器的解决方案但我需要一个没有的解决方
任何的想法?
我的ASP.NET MVC解决方案在VS2012上运行得很好.我安装了VS2015,我的解决方案也适用于它....直到我Clean
接着Rebuild
它内部的服务.然后,如果我运行解决方案,我在尝试调用服务时遇到错误(这是我的解决方案的一部分)...
如果我Clean
然后Rebuild
在VS2015中的解决方案并再次运行它得到相同的错误.
如果我Clean
再Rebuild
在VS2012的解决方案,将其关闭并在VS2015再次打开它,然后它运行得很好.
因此,似乎我需要Clean
和Rebuild
VS2012一起能够在VS2015下运行它.很奇怪.
编辑
错误是:System.ServiceModel.ProtocolException
因为服务没有按预期返回结构化数据,而是一些html(1024个第一个八位字节)...对应于错误页面,如下所示:
"
<head>
<title>Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.</title>
<meta name="viewport" content="width=device-width" />
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
.marker {font-weight: bold; color: black;text-decoration: none;} …
Run Code Online (Sandbox Code Playgroud) 默认情况下,在ASP.NET MVC中,当系统生成视图(脚手架)时,我们在一行上有标签,在下一行有文本框.我想将标签和文本框放在同一行,并在整个宽度上设置文本框(100%).我试图成功实现这一目标.
我发现了一些类似的帖子,但不允许我在整个宽度上放置文本框!
这就是我想要的:
所以,默认我有:
<div class="editor-label"> @Html.LabelFor(model => model.Descr) </div>
<div class="editor-field"> @Html.EditorFor(model => model.Descr) </div>
<div class="editor-label"> @Html.LabelFor(model => model.Year) </div>
<div class="editor-field"> @Html.EditorFor(model => model.Year) </div>
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我现在有几次学习ASP.NET MVC了.我遵循在互联网或书籍中找到的一些指导原则,我想确保我遵循关于视图模型模式的开发中的良好实践.以下是博客实施的简单示例.能否请你确认我是在正确的方式.假设我想在视图上显示帖子标题+描述,并在此帖子上显示评论.所以我有一个视图有2个部分视图.
在我的控制器中:
public ActionResult DetailPost(int postID)
{
// retrieve infos
Post postModel = repository.Posts.FirstOrDefault(p => p.PostID == postID);
IEnumerable<Comments> commentsModel = postModel.Comments;
// prepare view model
DetailPostViewModel detailPostViewModel = new DetailPostViewModel
{
Post = postModel,
Comments = commentsModel,
};
return View(detailPostViewModel);
}
Run Code Online (Sandbox Code Playgroud)
所以在这里,我将看到一个由两件事组成的视图模型:
视图模型将传递给视图以跟随视图模型模式.
在我的详细视图中:
@model WebUI.ViewModels.DetailPostViewModel
@{
ViewBag.Title = "Detail";
}
<h2>Detail</h2>
@Html.Partial("_DetailPost", Model.Post)
@Html.Partial("_Comments", Model.Comments)
Run Code Online (Sandbox Code Playgroud)
所以在这里,我使用了我的DetailPostViewModel.对于我的部分观点,我传递了必要的信息,即实体!?我不知道这是正确的方式,还是我必须在这里通过视图模型呢?
在我的_DetailPost视图中:
@model Domain.Entities.Post
@Html.DisplayForModel()
...
Run Code Online (Sandbox Code Playgroud)
所以在我的部分视图中,我使用en实体作为模型.是好还是坏?
在我的_Comments视图中:
@model IEnumerable<Domain.Entities.Comment>
@foreach (var item in Model)
{
@Html.DisplayFor(Model => item.Title)
@Html.DisplayFor(Model …
Run Code Online (Sandbox Code Playgroud) 我认为我有一个ActionLink.单击时,我的控制器中的操作被触发(我放置了一个断点来检查).它仅在第一次单击链接时起作用.其他时候,我的动作控制器中的断点永远不会到达.
@Ajax.ActionLink("Remove image", "RemoveImage", new { projectID = Model.ProjectID }, new AjaxOptions { OnSuccess="ImageRemovedSuccess" })
Run Code Online (Sandbox Code Playgroud)
OnSuccess ajax事件的函数"ImageRemovedSuccess"被很好地触发,但是没有触发控制器中的动作.
有什么建议?
谢谢.
我使用Durandal模板开发了一个asp.net解决方案.
我想使用模态对话框来选择表中的元素,并返回主视图模型中的选择元素.
这是我到目前为止:
在主视图中,我有一个链接(changer)
允许我打开模态对话框:
以下是单击链接时调用的viewModel的功能:
var changeSender = function (item) {
app.showModal('viewmodels/sender');
};
Run Code Online (Sandbox Code Playgroud)
所以我打开名为的对话框sender
.
下面是viewModel sender
:
define(function (require) {
var system = require('durandal/system'),
datacontext = require('services/datacontext');
var senders = ko.observableArray();
var activate = function () {
return datacontext.getSenders(senders);
};
var buttonOk = function (dialogResult) {
this.modal.close(dialogResult);
}
var buttonCancel = function () {
this.modal.close();
}
var vm = {
activate: activate,
senders: senders,
buttonOk: buttonOk,
buttonCancel: buttonCancel
};
return vm;
});
Run Code Online (Sandbox Code Playgroud)
以下是'theder'的视图:
<div …
Run Code Online (Sandbox Code Playgroud) 我用淘汰/微风开发了一个项目.
我想知道是否有可能强制淘汰赛将观察者标记为已更改(即使焦点仍在场中).我的goad是通知用户,无论何时他开始更改日期,他都能够保存它(立即显示一个按钮).例如,我有一个带日期的输入字段.用户开始在此字段中编辑日期.只有当用户离开该字段的焦点时,observable才应解释新的编码日期.但是我想Save button
在输入字段中输入内容时立即显示我的内容.我希望我很清楚.
这是我的bindingHandlers,用于处理输入中的编辑日期:
ko.bindingHandlers.dateRW = {
//dateRW --> the 'read-write' version used both for displaying & updating dates
init: function (element, valueAccessor, allBindingsAccessor) {
var observable = valueAccessor();
var value = ko.utils.unwrapObservable(valueAccessor);
//handle the field changing
ko.utils.registerEventHandler(element, "change", function () {
var myDate = moment($(element).val(), "DD/MM/YYYY");
observable(myDate.toDate());
});
//ko.utils.registerEventHandler(element, "keyup", function () {
// As soon as user begin to type something, I would like to show my save button
//});
},
update: function (element, valueAccessor, allBindingsAccessor) …
Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用了typescript定义文件breeze(breeze.d.ts).当我编译我的项目时,我得到一个错误行216:
'declare' modifier not allowed for code already in an ambient context.
如果我只是删除declare
它编译成功.
有没有人遇到同样的问题?
谢谢.
我从 Dailymotion API 检索数据。
"created_time": 1391086059,
"message": "20 minutes rime avec fils de.",
"owner.username": "Mejicano777"
Run Code Online (Sandbox Code Playgroud)
如何使用data-bind
'owner.username' 上的 'text' 属性?
我试过:
<strong data-bind="text: owner.username"></strong>
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
谢谢。