从JavaScript的值中分配模型属性值

6

我有一个模型,其定义如下:

namespace ESimSolChemical.Models
{

    public class Employee
    {        
        public int EmployeeID{ get; set; }
        public string EmployeeName{ get; set; }
        public string Age{ get; set; }
        public string Address{ get; set; }

    }

我有以下 JavaScript 代码:

<script type="text/javascript">
    $(function () {
        $('#btnEmployeePiker').click(function () {
            var oParameter = new Object();
            oParameter.MultipleReturn = false;
            var oReturnObject = window.showModalDialog('/Employee/EmployeePiker/', oParameter, 'dialogHeight:470px;dialogWidth:550px;dialogLeft:400;dialogTop:100;center:yes;resizable:no;status:no;scroll:no');           
        });
    });
</script>

我的 JavaScript oReturnObject 包含两个属性,如下所示:
oReturnObject.EmployeeID;
oReturnObject.EmployeeName;

现在我想指派:
@Model.employeeID=  oReturnObject.EmployeeID;

我该如何完成这个任务?
4个回答

9

0

你不能像在JavaScript中那样执行服务器端代码。

你需要以某种方式将更新后的值发送回服务器进行处理。

看一下KnockoutJS,它使这样的事情变得非常容易。基本上,你只需将客户端的模型类序列化为JavaScript对象,对其进行操作,直到决定将其保存回来,然后将其作为JSON发送到服务器,这将允许你拥有像这样的操作方法

public ActionResult UpdateEmployee(Employee employee)
{
    // Update the database...
    //
}

上面链接的页面有很多教程可以开始学习。


0

这是我所使用的:

@{
   @Convert.ToString("var refID = " + @Model.RefID + ";alert(refID);")
}

它正在良好地运行。


0

看起来你想通过JavaScript(客户端)分配模型(服务器端)的值。这不是从客户端代码更新服务器端模型对象的正确方法。客户端JavaScript在用户浏览器上运行,而服务器端模型对象存储在服务器上。因此,您需要使用某种客户端和服务器之间的通信来更新服务器端模型对象,例如AJAX。

您可以参考:https://www.geeksforgeeks.org/how-to-make-ajax-call-from-javascript/ 了解AJAX。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接