开发者

Create Dynamic Html.ActionLink

I would like to generate a dynamic Html.Action link after a button click from a View. Currently I am using ajax to update a

tag on the form with a randomly generated product name from a DB. My code looks like this:

<p>
   <%using (Ajax.BeginForm("RandomProductName", new AjaxOptions { UpdateTargetId = "result" }))
    { %>           
        <input type="submit" value="Generate Random Product"/>

 <% } %>
</p>
<p id="result"></p>

The "RandomProductName" method in the controller returns a string value of the type of product. I would like to be able to turn this into a dynamic Html.Action link similar to <%=Html.ActionLink("Pliers", "Details", new {id = "2"})%> to display the detail view.

Any help on this would be greatly appreciated as I am just learning the framework this weekend.

Updated: Here is the code for my current method:

public PartialViewResult RandomProductLink()
    {
        int id = RandomProductID();
        Product product = GetProduct(id);

        return PartialView(Product.Name);
        //i think i need to return something like - <开发者_JS百科%= Html.ActionLink(Product.Name, "Details" new {id=Product.ID})%>
    }


UPDATE Now that I can see your code, it seems pretty straight forward. The simplest way would be to change your RandomProductName action to return a PartialViewResult that would return the contents of a user control.

public PartialViewResult RandomProductName()
{
    ProductNameModel productName = GenerateRandomProductName();
    return PartialView(productName);
}

Your model might look like this

public class ProductNameModel
{
   public string Name { get; set; }
   public int Id { get; set; }
}

Your user control might look like this

<%= Html.ActionLink(Model.Name, "Details", new { id = Model.Id }) %>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜