- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
因此,我尝试采用我编写的 View 来创建模型的实例,并使用它来编辑数据库中的现有实例。
因此,只需通过 ID 传入现有实例就非常简单
public ActionResult Index(int id)
{
return View(EntityContext.Policies.Where(x => x.ID == id).First());
}
我遇到的问题是当表单发布时:
@using (Html.BeginForm("Index", "Save", FormMethod.Post, new { @id = "form" }))
{
<fieldset>
...
@Html.TextBox("property")
@Html.TextBoxFor("otherProperty")
...
<input id="submit" type="submit" value="Save" />
</fieldset>
}
它发布到的 Controller :
public class SaveController : Controller
{
VectorDaemonContext vdContext = new VectorDaemonContext();
//
// POST: /Save/
[HttpPost]
public ActionResult Index(Policy policy, string property, int otherProperty) {
//Stuff to do with the policy
}
}
Controller 获得一个 Policy 对象,但它只设置了我在 View 上显示并允许编辑的字段
我想要做的是让 View 发布它从原始 Controller 获得的实例。这是我可以简单地做的事情吗?
据我所知,执行此操作的最简单方法是在 View 中为策略 ID 创建一个隐藏字段,然后访问数据库以拉回原始实例。由于某些领域特定的问题,我已经不得不比我想要的更多地访问数据库,所以如果我能避免这种情况,我愿意。
最佳答案
更正:
The
simplestsafest way I know of to do this would be to make a hidden field on the view for the ID of the Policy, then hit the database to pull back the original instance.
如果您将整个记录发送给客户,然后允许该客户将其发回,那么即使您“不允许”他们编辑字段,您也将对该记录的完全控制权交给了客户。因为偷偷摸摸的客户可以绕过您的应用程序并直接发布他们想要的任何数据并更改这些字段。因此,这样做是危险且不安全的。即使您信任您的客户,这也不是一个好主意。
安全的做法是只获取您希望他们输入的字段,并将它们应用于您从数据库服务器端检索的记录。这样,只有您允许他们更新的数据才会更改。
但是,如果您受到约束并下定决心,那么执行此操作的方法是为您不希望用户看到或编辑的所有变量创建隐藏字段。如果您希望他们看到这些字段,但不能编辑,您可以使用文本框并将这些字段设置为只读(同样,用户可以绕过它,所以这不是真正的安全)。或者只显示数据并使用隐藏的输入。
Web 浏览器只会发布存在于表单控件中且未在表单元素中禁用的数据。 (或您在 ajax 请求中发送的数据)。因此,您想要回传到服务器的任何数据都必须存在于控件中。
关于c# - 如何获得强类型 MVC View 以回发它传递的模型实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28329659/
你能定义自动回发和回发吗?它们的区别,哪些Web服务器控件支持自动回发和回发,以及回发和回调之间的区别? 最佳答案 回发:页面向自身执行 POST 请求 autopostback:自动执行回发,例如当
我有一个 ASP.NET 表单,其中包含一个下拉列表,它会在更改时发回服务器,并用一些日期填充第二个下拉列表。 该表单还包含其他字段,其中一些字段在客户端进行验证,另一些字段在服务器端进行验证。 这是
我需要在我的 ASPX 页面中使用 JavaScript 确认函数来确认基于 C# 代码中条件的各种操作,而不是直接连接到按钮单击事件。例如。如果计算出记录数 > 200,则询问“你想继续吗?”然后根
我正在尝试为一个项目构建一个非常具体的搜索页面,但我在处理由单个页面上动态生成的控件调用的多个回发时遇到了很多麻烦。 页面必须像这样工作: 有一个复选框,“详细搜索”,会在选中/取消选中时引起回发。
在 React 组件中如何防止它回发,以便在按下提交按钮时页面不会重新加载。 组件代码如下: const class MyComponent extends React.Component { .
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: prevent postback of HtmlButton in C# 这是我的 JavaScript 函数:
我们有一个 ASP.NET MVC3 网络应用程序。我们生成 HTML5 页面。 现在,我们希望将拖放内容(图片、word文档...)发送到HTML5页面,然后发送到Web服务器在 C# 中处理(内容
我正在使用 jquery tab 并遵循 js 方法,如何以及如何修改它以在回发之间保持 tab 状态? (这会将选项卡重置为 page_load 后的第一个选项卡) $(document).read
我正在 ASP.NET 4.0 网站中使用 AjaxFileUpload。问题是,当我上传文件时,它的 UploadComplete 会触发,从而导致回发到页面。在由 AjaxFileUpload 引
我在表单上有三个单选按钮 - A、B、C。这些选择中的每一个都会使用特定于该选项的数据填充一个下拉列表。加载表单时,我将选项 A 设置为选中(默认)。 当我选择按钮 B 或 C 时,AsyncPost
我正在尝试使用 JQuery 阻止页面回发。 $(document).ready(function() { $('#').click(function() {
这个问题是一个更大页面的一部分,但我简化了代码以提供一个简单的示例来说明我正在谈论的内容。基本上我有一个带有 AutoPostBack="true"的 ASP 下拉列表,我想做一些 javascrip
我在页面上有一个 AJAX 请求。 有没有办法找到在页面上触发 AJAX 调用的时间。在 jQuery 或 javascript 中查找或发起一个函数,在页面上调用 AJAX 请求。 最佳答案 参见
我有一个按钮可以通过回发提交我的表单,我想进行一些评估,如果一切都不好显示错误消息并停止回发。我已设法让我的代码进入我的 onsubmit 函数,但无法停止回发。 表格: 功能: function
我正在混合使用 asp.net 网络表单和 asp.net-mvc。要使用我包含的网络表单 routes.IgnoreRoute("Reports/{*pathInfo}"); 在 public st
我的网页中有文本框,其中有RequiredFieldValidators。这些控件的最底部是按钮提交和清除每次我单击提交按钮时,它都会触发来自RequiredFieldValidators的验证,这很
我有一个用 jquery 做的键盘控制菜单(当我按下时,它标记第二个选项,依此类推...) 但是当我选择我需要的选项后,我想单击 Enter 来调用按钮的 OnClick 方法,就像用户真的单击了它一
我有一个表单,用于更新数据库中的一组现有信息。其中有一个选择框,当选择选项“B”时,它会显示一个隐藏部分,而在选项“A”上,它将隐藏该部分。这很好用。 但是,当我从数据库加载记录集并且选择框设置为选项
我有一个 asp.net 项目,我们称它们为对象。所有对象都在转发器中创建: '/>
我有一个 ModalPopup,它将包含一个 gridview 和 4 个用于将项目输入到 gridview 本身的字段。 是否可以在保持模式打开的同时回发到服务器并更新 gridview? 当您提交
我是一名优秀的程序员,十分优秀!