【问题标题】:posting to database needs refresh to show - webmatrix/razor发布到数据库需要刷新才能显示 - webmatrix/razor
【发布时间】:2013-03-16 11:31:13
【问题描述】:

早上好,

我创建了一个页面来在输入字段中显示我的数据库的内容,并进行了设置,以便可以修改这些内容并将其发布回数据库。 我所做的工作非常好,因为它确实将内容保存回数据库,但我需要刷新页面才能看到这些更改。我想我可以使用 jquery 来做到这一点,但我需要指出正确的方向。我目前尝试将当前页面作为操作 href。

这是我当前的代码:

@{
Layout = "~/_template1.cshtml";

var db = Database.Open("mydatabase");
var CurrentUser = WebSecurity.CurrentUserId;
var userdetails = ("SELECT * from UserProfile WHERE UserId='8'");
var quserdetails = db.QuerySingle(userdetails, CurrentUser);

if (IsPost){
var updateuserdetails = "UPDATE UserProfile SET FirstName = @0, LastName = @1, TelNumber = @2 WHERE UserID='8'";
db.Execute(updateuserdetails, Request["FirstName"], Request["LastName"], Request["TelNumber"]);

  }
  }

  <h1>My Details</h1>
  <hr>
  <form method="post" action="~/Account/MyDetails.cshtml">
  <fieldset>
  <label>First Name</label>
  <input class="input-xlarge" type="text" name="FirstName" placeholder=".input-xlarge" value="@quserdetails.FirstName">
  <br>
  <label>Last Name</label>
  <input class="input-xlarge" type="text" name="LastName" placeholder=".input-xlarge" value="@quserdetails.LastName">
  <br>
  <label>Telephone Number</label>
<input class="input-xlarge" type="text" name="TelNumber" placeholder=".input-xlarge" value="@quserdetails.TelNumber">
  <br>

  <button type="submit" class="btn btn-success">Update</button>
  <button type="submit" class="btn btn-success">Cancel</button>
  </fieldset>
  </form>

【问题讨论】:

  • 可以使用 jQuery AJAX 提交表单,并使用来自服务器的响应数据来操作页面。还可以使用 AJAX 加载表单并让服务器根据 url 参数填充它需要更多关于表单提交后需要发生什么的细节。
  • 我对此并不熟悉,但你不能在 if(IsPost) 中运行 db.Execute(updateuserdetails, Request["FirstName"], Request["LastName"], Request["TelNumber"]); 后再次运行 var quserdetails = db.QuerySingle(userdetails, CurrentUser); 吗?看起来它会再次影响数据。

标签: jquery sql sql-server razor webmatrix


【解决方案1】:

使用 Ajax 提交,它会使用 ajax 发布表单。所以页面不会被刷新

下载文件

  1. jquery.ajax.form.js
  2. jquery.validate.js

连同 jquery.js

$('#form1').validate({
        submitHandler: function(form) {

            var options = {
                url:$('#form1').attr('action'),
                success:function(response){
                    data = $.parseJSON(response);

                }
            };
            $("form#form1").ajaxSubmit(options);
            return false;
        }
    });

【讨论】:

  • 感谢 Kautil,但它在哪里指定将哪些输入发送到哪个数据库列?
  • 当您在正常提交中获取 $_POST 中的所有数据时,您将在 $_POST 中获取所有表单数据
猜你喜欢
  • 1970-01-01
  • 2022-07-26
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
相关资源
最近更新 更多