0

アクションメソッドを実行し、JSON を返す次の Ajax.actionlink があります。

@Ajax.ActionLink("Start Process", "StartProcess", "Home",
new { name = "BuisnessProcess" },
new AjaxOptions 
    {   HttpMethod = "POST",
        LoadingElementId = "tobehide2",
        UpdateTargetId = "startprocess",
        OnSuccess = "Animate" }) 
</div> <img id="tobehide2" src="~/Content/ajax-loading2.gif" />

現在、ユーザーがリンクをクリックすると、ブラウザーに JSON 情報が表示されます。

{"activityId":"2119_666_BuisnessProcess_process1_setverialbe","processId":"666_BuisnessProcess_process1"}

しかし、私がやろうとしているのは、返された Json に基づいて別の Ajax.actionlink を作成しactivityId、新しいパラメーターとして Ajax.actionlink に渡すことです。

よろしくお願いします

:::更新しました:::

[HttpPost]
public ActionResult StartProcess(string name)
{
    using (var client = new WebClient())
    {

        try
        {
            var query = HttpUtility.ParseQueryString(string.Empty);
            query["j_username"] = "kermit";
            query["hash"] = "9449B5ABCFA9AFDA36B801351ED3DF66";
            query["loginAs"] = User.Identity.Name;
            query["imagurl"] = "123";

            var url = new UriBuilder("http://localhost:8080/jw/web/json/workflow/process/start/" + name.ToString() + ":28:process1");

            url.Query = query.ToString();
            string json = client.DownloadString(url.ToString());

            Thread.Sleep(500);

            return Content("Process started succsfully. Returned values are :-" + json);
        }
        catch (System.Net.WebException ex)
        {

            return Content("", "application/json");
        }
    }
}
4

1 に答える 1

0

when you return data in action, to combine html string.

<a href="xxx">test</a>

to UpdataTargetId : startprocess.


when you return the json to view, then execute "Animate" function. so, you can construct the link in Animate.

function Animate(result)
{
    $(result).each(function(index, item){
        // todo construct the link
    });
}
于 2012-10-22T10:34:59.620 に答える