将messageID传递给控制器​​?

时间:2016-10-18 09:19:09

标签: javascript c# ajax asp.net-mvc

我需要将messageID传递给我的控制器,我不知道如何做到这一点,请参阅下面的javascript和控制器。如果它被检查等等,我将如何做类似字符串消息ID的操作...

$(".markmessage").click(function () {
var messageId=$(this).data("id"); //need to pass this message ID to controller.
//I need to pass the messageID to server which is CRM
$.ajax({
url: "@Url.Action("", "")", //Need to add my URl here
type: "POST",
data: JSON.stringify({messageID : messageId}), //method converts a JavaScript value to a JSON string
dataType: "json",
success: function (response) {
$(this).remove();
}
});
});

我的messageID控制器方法,

[HttpPost]
public ActionResult markmessage()
{

}

1 个答案:

答案 0 :(得分:0)

为了在部署到生产时安全起见,我们需要提取根URL。 在你的Layout.cshtml中添加这个;

<script>
        var baseUrl = "@Url.Content("~")";
</script>

在你的ajax中

$.ajax({
    url: baseUrl + '/Controller/Action', //Need to add my URl here
    type: "POST",
    data: {'messageID' : messageId},
    dataType: "json",
    success: function (response) {
        $(this).remove();
    }
    });
});

在控制器中 [HttpPost]

public ActionResult markmessage(string messageID)
{
    if (messageID == "read do this")
    {
       .. Insert your logic here
    }
}

就这么简单,请记住URL.Action在javascript中不起作用,因为它仅适用于asp