2

只是想知道我们是否可以在服务器标签内的视图中更新模型属性,然后在用户输入输入后是否可以在 Java 脚本函数中更新它们。

此代码运行良好,在模型绑定的帮助下,我能够在 Dialog 控制器中检索以下硬编码信息。"(在 CallingModalDialogView2 动作方法中)

@Html.TextBoxFor(m => m.empname)
@Html.TextBoxFor(m => m.salary, new { @class = "homeSearchBy" })

 @{ MvcApp3.Models.employee emp = new MvcApp3.Models.employee();
    emp.empid = 12121;     //Hard coded some information 
    emp.empname = "Biki";
    emp.empid = 23;
    emp.salary = 111111111;
  }


@Html.MyFramework().Button("ok", Url.Action("CallingModalDialogView2", "Dialog", emp), "title1", "OK")

但是当我试图在文本框中输入一些信息并将它们分配给模型属性时,它不起作用。我做错了什么或者这在 MVC 中是不允许的吗?

4

1 回答 1

3

您的问题的简短回答:否

Razor 代码全部在服务器端呈现。当您在浏览器中看到该页面时,服务器端操作已完成。

您的型号:

@Html.TextBoxFor(m => m.empname)
@Html.TextBoxFor(m => m.salary, new { @class = "homeSearchBy" })

@Html.HiddenFor(m=> m.empid )
@Html.HiddenFor(m=> m.empname )
@Html.HiddenFor(m=> m.salary )

或者:

@Html.Hidden("empid", 1212 )
@Html.Hidden("empname", "Biki" )
@Html.Hidden("salary", 100000 )

然后:

<input type="button" id="change-button" value="change" />

使用 JQuery 更改数据非常容易:

<script>
$(function(){ 
  $("#change-button").click(function(){
    $("#empid").val(12);
    $("#empname").val("Morteza");

    // submit form without ajax
    $("form").submit(); 

    // submit form with ajax
    $.ajax({
      url: "Address of your action method",
      type: "Post", // "Get"
      data:  $("form").serialize(),
      success: function(){
        //...
      }
    });        
  });
});
</script>

我在许多项目中使用这个解决方案并且对我来说工作得很好!

于 2012-05-05T15:13:13.440 回答