- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个奇怪的案例,我希望得到您的启发。我有两个 Controller 。一个 Person Controller 用于一般 Person 使用操作方法,一个 Candidate Controller 用于与 Candidate 相关的更具体的操作方法。我使用位于 Person 文件夹下的一个局部 View ,以便用作通用 View ,以防将来我想将它用于其他类型的 Person。目前,此局部 View 使用 Ajax.BeginForm 来定位候选 Controller 。我使用的语法是
@using (Ajax.BeginForm("SaveCandidateLanguage", "Candidate",
new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "onBeginFormValidation",
OnSuccess = "onSaveCandidateLanguageSuccess"
}))
{
// form input elements
}
这种类型的 Ajax.BeginForm 可以正常工作,尽管它针对的是不同 Controller 中的操作。现在对于我的表单验证,我必须向我的 Ajax.BeginForm 添加更多参数。我的新语法是这样的:
@using (Ajax.BeginForm("SaveCandidateLanguage", "Candidate",
new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "onBeginFormValidation",
OnSuccess = "onSaveCandidateLanguageSuccess"
},
new
{
id = "addEditCandidateLanguageForm",
novalidate = "novalidate"
}))
{
// form input elements
}
由于某种原因,这种方式无法找到 Action 方法。如果我将我的 Action 放在 Person Controller 中,它会再次正常工作。但是我想知道为什么会这样。我做了一些挖掘,但我没有设法得到答案。
从 Firebug 我看到浏览器试图发布的 url 是出于某种原因
http://{项目名称}/Person/SaveCandidateLanguage?Length=9
代替
http://{ProjectName}/Candidate/SaveCandidateLanguage?Length=9
自然我会收到 404 Not found 响应。我还想知道我在 url 末尾看到的变量 ?Length=9 是什么,它来自哪里。
最佳答案
Ajax.BeginForm
有 11 个不同的声明。在您的第一种情况下,它之所以有效,是因为您使用了这个:
Ajax.BeginForm(string actionName, string controllerName, AjaxOptions options)
但是第二种情况你使用这个,试图在 object routeValues
参数中放入一个字符串:
Ajax.BeginForm(string actionName, object routeValues, AjaxOptions options, object htmlAttributes)
最后,您要使用的声明是:
Ajax.BeginForm(string actionName, string controllerName, object routeValues, AjaxOptions ajaxOptions, object htmlAttributes)
使用 null
值实现,例如:
Ajax.BeginForm("SaveCandidateLanguage", "Candidate", null,
new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "onBeginFormValidation",
OnSuccess = "onSaveCandidateLanguageSuccess"
},
new
{
id = "addEditCandidateLanguageForm",
novalidate = "novalidate"
}))
而 ?length="9"
的原因是因为“Candidate”包含 9 个字符,并且 length 是字符串的唯一属性
关于c# - 带有 4 个参数的 Ajax.BeginForm 找不到操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46588229/
我有一个呈现两个局部 View 的主视图。主视图包含表单中的两个部分 View 。每个部分 View 还包含表单。所有 3 个 View 共享相同的 View 模型。我想要做的是用主视图封装来自所有
我有一个用于编辑内容的 View ,比如订单。订单有可以任意添加的行项目。所以一个主视图和嵌套的局部 View 。 每个部分都应该有一个 ajax 表单,用于调整每个订单项或其他内容的数量。 因此:
以下有效,但如何将其转换为 Ajax 调用? @using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnU
令人惊讶的是,在我检查了所有帖子之后,仍然没有明确的解释(在我看来)在什么情况下应该使用主题数据...... 我知道对于 html.beginform,它将执行回发,将数据发布到 Controller
MVC3中的Html.BeginForm()和Ajax.Beginform()有什么区别。我只是想知道在什么情况下可以使用 Html.BeginForm() 以及在什么情况下可以使用 Ajax.Beg
当我将表单的一部分放在局部 View 中时,除局部 View 中的表单元素外,所有表单部分都将获得无障碍语法。 我发现如何“应用”无障碍语法的唯一方法是在局部 View 中启动另一种形式。 看法: @
我在 ASP.NET MVC 5 中工作。我在使用 Ajax.BeginForm 提交表单期间显示加载程序: @using (Ajax.BeginForm("Filter", "Log", new A
我正在使用TinyMCE editor在我网站的管理面板上,所以我用 [AllowHtml] 装饰模型属性(tinymce 的目标),并在 View 中使用 Html.BeginForm() 。当我提
我对 Ajax.BeginForm 有很长时间的问题,现在是通过互联网和 SO 进行搜索,但大多数解决方案包括 jquery.unobtrusive-ajax.min或编辑 web.config允许
目的 我有一个简单的表格,列出了名称(在部分 View 中),其上方有一个包含这些名称的下拉列表。目的是根据下拉列表中选择的名称过滤表。一旦下拉列表中的选定值发生变化,过滤就应该发生,并且应该只再次渲
我有一个 Ajax.BeginForm 调用,它应该返回一个局部 View ,但将页面重新路由到 Action。关于什么是错的任何想法? 这是我要在其上呈现部分 View 的主页上的代码:
我创建了一个名为 B2b 的区域在我的 ASP.NET MVC 应用程序中,我还创建了一个名为 Shopify 的子文件夹在该区域下: 为了注册Shopify子文件夹,我创建了一个 CustomVie
我有这个代码: @using (Html.BeginForm()) { @Html.ValidationSummary(true, "Login
我想有条件地使用 Html.BeginForm。代码中有2个字段如下 @using (Html.BeginForm("Form1Action", "Form1", FormMethod.Post, n
在VS2008中使用MVC项目模板(开箱即用),我注意到以下几点: 这是指定Register.aspx表单的方式。 选择“注册”按钮而不提供任何帐户信息将显示此信息。帐户创建失败。请更正错误,然后重
这个问题已经有答案了: Update div using ajax.beginform inside asp mvc view (1 个回答) 已关闭 7 年前。 我正在尝试执行 AJax 表单发布,
我在尝试使用 ASP.NET MVC3 的 Ajax.BeginForm 方法时遇到了一个奇怪的问题。表单通过正确的操作属性在页面上正确呈现。但是,当提交表单时,“OnFailure”事件返回“Not
有没有办法让 AjaxBeginForms 忽略某些指定的按钮? 例如我的代码是: @using (Ajax.BeginForm("CreatePost", "Accounts", new AjaxO
我读到this我想知道 Ajax.BeginForm 是否已过时 谢谢 最佳答案 嗯,它并没有过时,但达林在你所链接的问题中强烈反对使用它。 就我个人而言,MVC 2 的客户端解决方案在某些方面感觉像
我正在开发一个 ASP.NET MVC 3 应用程序。我想使用 AJAX.BeginForm。有哪些可以详细研究的资源/教程链接? 最佳答案 试试 Unobtrusive Ajax helpers i
我是一名优秀的程序员,十分优秀!